12.2.2 触摸屏设备驱动中数据结构
触摸屏设备结构体的成员与按键设备结构体的成员类似,也包含一个缓冲区,同时包括自旋锁、等待队列和fasync_struct指针,如代码清单12.12所示。
代码清单12.12 触摸屏设备结构体
1 typedef struct
2 {
3 unsigned int penStatus; /* PEN_UP, PEN_DOWN, PEN_SAMPLE */
4 TS_RET buf[MAX_TS_BUF]; /* 缓冲区 */
5 unsigned int head, tail; /* 缓冲区头和尾 */
6 wait_queue_head_t wq; /*等待队列*/
7 spinlock_t lock;
8 #ifdef USE_ASYNC
9 struct fasync_struct *aq;
10 #endif
11 struct cdev cdev;
12 } TS_DEV;
|
触摸屏结构体中包含的TS_RET值的类型定义如代码清单12.13所示,包含X、Y坐标和状态(PEN_DOWN、PEN_UP)等信息,这个信息会在用户读取触摸信息时复制到用户空间。
代码清单12.13 TS_RET结构体
1 typedef struct
2 {
3 unsigned short pressure;//PEN_DOWN、PEN_UP
4 unsigned short x;//x坐标
5 unsigned short y;//y坐标
6 unsigned short pad;
7 } TS_RET;
|
在触摸屏设备驱动中,将实现open()、release()、read()、fasync()和poll()函数,因此,其文件操作结构体定义如代码清单12.14所示。
代码清单12.14 触摸屏驱动文件操作结构体
1 static struct file_operations s3c2410_fops =
2 {
3 owner: THIS_MODULE,
4 open: s3c2410_ts_open, //打开
5 read: s3c2410_ts_read, //读坐标
6 release:
7 s3c2410_ts_release,
8 #ifdef USE_ASYNC
9 fasync: s3c2410_ts_fasync, // fasync()函数
10 #endif
11 poll: s3c2410_ts_poll,//轮询
12 };
|
| 回书目 上一节 下一节 |
|
||||
| · 如何优化IT 控制能耗 · 国际文档格式标准开战 · CISSP认证成长之路 · 珊瑚虫QQ作者侵权案开庭 · 微软出价446亿美元收购.. · Windows Server 2008专.. · 隐私保护技术探讨 · 贝恩资本携手华为22亿.. |
· 802.11n:下一代的无线.. · 体验Visual Studio 200.. · 运营商封堵非法ADSL共享 · ADSL应用面面俱到 · 龙芯要做中国的“奔腾” · 华为七千人主动辞职规.. · 华为路由器配置 · 2007盘点专题:有多少.. |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2008/2005.. · 中间件应用技术专题 · 深入了解PGP加密技术 · MySQL数据库备份 |
· 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · Linux 基础 · SSL VPN详细知识 · Linux防火墙 · Linux 集群技术专题 · 打造安全服务器 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · MySQL数据库备份 · 身份认证技术 |
· 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · Linux 集群技术专题 · VPN技术 · Linux 基础 · SOA 面向服务架构 |
|||