做笔记用,多为转载。
发布时间: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.........【阅读全文】