免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 992 | 回复: 0
打印 上一主题 下一主题

linux键盘驱动(模块动态加载)四 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-29 15:52 |只看该作者 |倒序浏览
linux键盘驱动(模块动态加载)四

八.poll系统调用操作接口函数
   当程序需要进行对多个文件读写时,如果某个文件没有准备好,则系统就会处于读写阻塞的状态,这影响了其他文件的读写,为了避免读写阻塞,一般可以在应用程序中使用poll或者select函数。当poll函数返回时,会给出一个文件是否可读写的标志,应用程序根据不同的标志读写相应的文件,实现非阻塞的读写,poll()函数通过poll系统调用,调用对应设备驱动的poll()接口函数,poll返回不同的标志,告诉主进程文件是否可以读写,这些返回标志存放在include\asm\poll.h中

标志
含义
POLLIN
如果设备无阻塞的读,就返回该值
POLLRDNORM
通常的数据已经准备好,可以读了,就返回
该值。通常的做法是会返回(POLLLIN|POLLRDNORA)
POLLRDBAND
如果可以从设备读出带外数据,就返回该值,它只可在linux内核的某些网络代码中使用,通常不用在设备驱动程序中
POLLPRI
如果可以无阻塞的读取高优先级(带外)数据,就返回该值,返回该值会导致select报告文件发生异常,以为select八带外数据当作异常处理
POLLHUP
当读设备的进程到达文件尾时,驱动程序必须返回该值,依照select的功能描述,调用select的进程被告知进程时可读的。
POLLERR
如果设备发生错误,就返回该值。
POLLOUT
如果设备可以无阻塞地些,就返回该值
POLLWRNORM
设备已经准备好,可以写了,就返回该值。通常地做法是(POLLOUT|POLLNORM)
POLLWRBAND
于POLLRDBAND类似在本章地驱动程序中,Keypad_poll()函数在缓冲区有新数据时(当head!=tail),返回一个POLLIN|POLLRDNORM,告诉主进程有新的

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/13229/showart_239600.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP