Chinaunix首页 | 论坛 | 博客
  • 博客访问: 479450
  • 博文数量: 130
  • 博客积分: 2111
  • 博客等级: 大尉
  • 技术积分: 1373
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-28 09:55
个人简介

IT民工

文章分类

全部博文(130)

文章存档

2021年(1)

2019年(1)

2017年(3)

2014年(1)

2013年(3)

2012年(2)

2011年(3)

2010年(2)

2009年(114)

分类: LINUX

2009-09-03 13:05:48

linux按键驱动讲解四[zt]
2008-04-07 11:47:57
linux键盘驱动(模块动态加载)四

转载请注明来源为:qiangren.blog.edu.cn 

更多的资讯欢迎登录:qiangren.blog.edu.cn

欢迎邮件交流:

八.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,告诉主进程有新的
阅读(717) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~