您所在的位置: 首页 > 读书频道 > 操作系统 > Linux >

12.2.7 触摸屏设备驱动的读函数

http://book.51cto.com  2008-03-10 13:26  宋宝华 编著  人民邮电出版社  我要评论(0)
  • 摘要:《Linux设备驱动开发详解》本书全面而详细地讲解了Linux设备驱动开发中涉及的理论以及多种设备驱动的框架。第12章将分析5个典型的字符设备驱动,在这些驱动中,将灵活地运用到前面各章所讲解的内容。本文写的是触摸屏设备驱动的读函数。
  • 标签:Linux  设备  驱动  cdev  Linux设备驱动开发详解

12.2.7  触摸屏设备驱动的读函数

触摸屏设备驱动的读函数实现缓冲区中信息向用户空间的复制,当缓冲区有内容时,直接复制;否则,如果用户阻塞访问触摸屏,则进程在等待队列上睡眠,否则,立即返回-EAGAIN,如代码清单12.25所示。

代码清单12.25  触摸屏设备驱动的读函数

1  static ssize_t s3c2410_ts_read(struct file *filp, char *buffer, size_t count,
2    loff_t *ppos)
3  {
4    TS_RET ts_ret;
5  
6    retry:
7    if (tsdev.head != tsdev.tail)  //缓冲区有信息
8    {
9      int count;
10     count = tsRead(&ts_ret);
11     if (count)
12       copy_to_user(buffer, (char*) &ts_ret, count);//复制到用户空间
13     return count;
14   }
15   else
16   {
17     if (filp->f_flags &O_NONBLOCK)    //非阻塞读
18       return  - EAGAIN;
19     interruptible_sleep_on(&(tsdev.wq));  //在等待队列上睡眠
20     if (signal_pending(current))
21       return  - ERESTARTSYS;
22     goto retry;
23   }
24 
25   return sizeof(TS_RET);
26 }

【责任编辑:董书 TEL:(010)68476606】

回书目   上一节   下一节
Linux——从菜鸟到高手
二手仿冒设备与思科再营销谁更火
Linux/Solaris服务器的安全配置
双机热备技术
Linux 集群技术专题
 
 验证码: (点击刷新验证码)   匿名发表
  • 网络工程师考试案例动手实验营

  • 作者:郭春柱
  • 本书依据2009年版《网络工程师考试大纲》的考核要求,深入研究了历年网络工程师考试试题的命题风格和试题结构,对考查的知识点..
Copyright©2005-2008 51CTO.COM 版权所有