LDD高级字符驱动程序操作-异步通知
2016-10-31 23:30
281 查看
异步通知:
1,作用:对一个文件描述符能够进行无阻塞操作的时候,发送异步通知到想要的进程,如果为多个文件由于无法辨识某个文件标识符,所以需要使用poll , select ,epoll,所以异步通知是poll,select,epoll的补充技术;
2,异步通知:linux内核实现,通过异步通知标志位设置是否发送异步通知,FASYNC;
a,当设置文件描述符的异步通知位的时候内核会调用文件描述符对应的模块的异步通知方法fasync(struct file *filp, /*?????*/);设置异步通知,fasync是作为文件描述对应模块的file_operations 异步通知函数指针分量被内核调用的;
b,当某一操作能够无阻塞执行的时候,文件描述符对应模块会发送异步通知SIGIO给owner进程做相应的无阻塞操作,对于发送操作为;kill_fasync(/*?????*/);
c,当文件描述符对应模块不使用异步通知时,一定要在release file_operations release函数指针分量对应函数中将其对异步通知的设置删除,也及时从异步通知队列中删除;
3,用户空间:a,设置文件描述符的owner进程pid
b,设置异步通知标志位;
c,设置异步通知处理函数,void (*signal(int , void (*sig_handle)(int)))(int);
1,作用:对一个文件描述符能够进行无阻塞操作的时候,发送异步通知到想要的进程,如果为多个文件由于无法辨识某个文件标识符,所以需要使用poll , select ,epoll,所以异步通知是poll,select,epoll的补充技术;
2,异步通知:linux内核实现,通过异步通知标志位设置是否发送异步通知,FASYNC;
a,当设置文件描述符的异步通知位的时候内核会调用文件描述符对应的模块的异步通知方法fasync(struct file *filp, /*?????*/);设置异步通知,fasync是作为文件描述对应模块的file_operations 异步通知函数指针分量被内核调用的;
b,当某一操作能够无阻塞执行的时候,文件描述符对应模块会发送异步通知SIGIO给owner进程做相应的无阻塞操作,对于发送操作为;kill_fasync(/*?????*/);
c,当文件描述符对应模块不使用异步通知时,一定要在release file_operations release函数指针分量对应函数中将其对异步通知的设置删除,也及时从异步通知队列中删除;
3,用户空间:a,设置文件描述符的owner进程pid
b,设置异步通知标志位;
c,设置异步通知处理函数,void (*signal(int , void (*sig_handle)(int)))(int);
相关文章推荐
- 高级字符驱动程序操作之异步通知IO(理论篇)
- Linux设备驱动程序第三版学习(8)- 高级字符驱动程序操作(续3)- 异步通知
- 高级字符驱动程序操作之异步通知IO(实践篇)基于内核2.6.35-30
- ldd3学习之十二(3):高级字符驱动程序操作--poll/select、异步通知
- 【Linux 驱动】第六章 高级字符驱动程序操作----异步通知
- Linux设备驱动程序学习(6)-高级字符驱动程序操作[(4)异步通知fasync]
- 高级字符驱动程序操作之异步通知IO(实践篇)基于内核2.6.35-30
- 高级字符驱动程序操作之异步通知IO(实践篇)
- Linux设备驱动程序第三版学习(8)- 高级字符驱动程序操作(续3)- 异步通知 .
- 07-S3C2440驱动学习(一)嵌入式linux字符设备驱动-按键驱动程序之异步通知机制+原子操作+互斥信号量+阻塞与非阻塞+定时器去抖
- 高级字符驱动程序操作之ioctl(实践篇)
- 高级字符驱动程序操作[(2)阻塞型I/O和休眠]
- 高级字符驱动程序操作 -- 基本读写功能
- Linux设备驱动程序第三版学习(5)- 高级字符驱动程序操作 - ioctl
- Linux设备驱动程序第三版学习(6)- 高级字符驱动程序操作(续1) - 进程休眠
- linux设备驱动学习(5) 高级字符驱动程序操作--ioctl
- Linux设备驱动程序学习(4) -高级字符驱动程序操作[(1)ioctl and llseek]
- Linux设备驱动程序学习(5) -高级字符驱动程序操作[(2)阻塞型I/O和休眠]
- Linux设备驱动程序第三版学习(7)- 高级字符驱动程序操作(续2)- poll/select .
- 高级字符驱动程序操作之ioctl(理论篇)