做笔记用,多为转载。
发布时间:2015-05-19 10:27:31
1. Ioctl 用来做什么?大部分驱动除了需要具备读写设备的能力外,还需要具备对硬件控制的能力。例如,要求设备报告错误信息,改变波特率,这些操作常常通过ioctl方法来实现。1.1 用户使用方法在用户空间,使用ioctl 系统调用来控制设备,原型如下: int ioctl(int f.........【阅读全文】
发布时间:2015-05-19 10:26:48
在Linux驱动程序设计中,可以使用等待队列来实现进程的阻塞,等待队列可看作保存进程的容器,在阻塞进程时,将进程放入等待队列,当唤醒进程时,从等待等列中取出进程。Linux 2.6内核提供了如下关于等待队列的操作:1、定义等待队列 wait_queue_head_t my_queue2、初始化等待队列 &.........【阅读全文】
发布时间:2015-05-19 10:25:38
1、阻塞型字符设备驱动的功能 当一个设备无法立刻满足用户的读写请求时应当如何处理? 例如:调用read时没有数据可读, 但以后可能会有;或者一个进程试图向设备写入数据,但是设备暂时没有准备好接收数据。应用程序通常不关心这种问题,应用程序只是调用 read 或 write 并得到返回值。驱动程序.........【阅读全文】
发布时间:2015-05-19 10:23:47
1、什么是Poll方法,功能是什么? 2、Select系统调用(功能) Select系统调用用于多路监控,当没有一个文件满足要求时,select将阻塞调用进程。 int select(int maxfd, fd_set *readfds, fd_set *writefds, fe_set *exceptfds, const st.........【阅读全文】
发布时间:2015-05-12 21:20:40
linux网络设备驱动结构linux网络设备驱动可以划分为4层,分别是网络协议接口层、网络设备接口层、设备驱动功能层、网络设备与媒介层。 网络协议接口层 网络协议接口层的最主要功能是给上层协议提供透明的数据包发送和接收接口。dev_queue_xmit(struct sk_buff *skb) 发送数据, netif_rx.........【阅读全文】