input子系统三 核心层和处理器注册
来源:互联网 发布:西北师范大学知行 编辑:程序博客网 时间:2024/06/05 07:54
转自http://blog.csdn.net/coldsnow33/article/details/12840635
一 input字符设备注册
- static int __init input_init(void)
- {
- int err;
- err = class_register(&input_class);
- if (err) {
- pr_err("unable to register input_dev class\n");
- return err;
- }
- err = input_proc_init();
- if (err)
- goto fail1;
- err = register_chrdev_region(MKDEV(INPUT_MAJOR, 0),
- INPUT_MAX_CHAR_DEVICES, "input");
- if (err) {
- pr_err("unable to register char major %d", INPUT_MAJOR);
- goto fail2;
- }
- return 0;
- fail2: input_proc_exit();
- fail1: class_unregister(&input_class);
- return err;
- }
二 handler处理器注册
- static int __init evdev_init(void)
- {
- return input_register_handler(&evdev_handler);
- }
- int input_register_handler(struct input_handler *handler)
- {
- struct input_dev *dev;
- int error;
- error = mutex_lock_interruptible(&input_mutex);
- if (error)
- return error;
- INIT_LIST_HEAD(&handler->h_list);
- list_add_tail(&handler->node, &input_handler_list);
- list_for_each_entry(dev, &input_dev_list, node)
- input_attach_handler(dev, handler);
- input_wakeup_procfs_readers();
- mutex_unlock(&input_mutex);
- return 0;
- }
list_add_tail(&handler->node, &input_handler_list);把自己挂在全局的list上,input device register的时候,会遍历这个list,做handler匹配,当然这个匹配时双向的,
所以此时会遍历input_dev_list,为hander找到匹配的dev。没错,匹配时调用的仍然是input_attach_handler(dev, handler)。
0 0
- input子系统三 核心层和处理器注册
- input子系统三 核心层和处理器注册
- input子系统三 核心层和处理器注册
- android input子系统之二:核心层
- input子系统学习笔记七 handler处理器注册分析
- input子系统学习笔记七 handler处理器注册分析
- input子系统学习笔记七 handler处理器注册分析
- input子系统学习笔记七 handler处理器注册分析
- input子系统二 驱动层input设备注册
- input子系统二 驱动层input设备注册
- input子系统二 驱动层input设备注册
- input子系统框架、核心层、输入事件驱动层详解
- android input子系统之三:事件层
- Linux/Android——input子系统核心 (三)
- Linux/Android——input子系统核心 (三)
- Linux/Android——input子系统核心 (三)
- linux input子系统分析--子系统核心.事件处理层.事件传递过程
- linux驱动——input输入子系统(1)—输入子系统核心层(Input Core)
- 【九度】题目1023:EXCEL排序
- caffe学习系列:训练自己的图片集(超详细教程)
- Android 通过WiFi进行ADB调试
- 78 leetcode - Remove Duplicates from Sorted List
- Tree树(设置单击选中与取消多选框)(设置树节点隐藏)
- input子系统三 核心层和处理器注册
- 几个有用的blog链接
- 移动客户端中高效使用SQLite
- [leetcode] 448. Find All Numbers Disappeared in an Array
- 漫步数学分析八——集合边界
- input子系统四 input事件处理
- new JSONArray(List<Map>).tostring()问题
- Android源码-WirelessSettings之NFC小结
- PDO操作mysql的类