input子系统三 核心层和处理器注册
来源:互联网 发布:淘宝店家如何开通花呗 编辑:程序博客网 时间:2024/06/03 10:36
一 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)
- Stanford CoreNLP – Core natural language software
- Caffe中新建Layer--改写Faster-RCNN的proposal layer
- 股票中的S、ST、*ST、SST、S*ST是指什么?
- xwalkView的使用
- 利用SSIS的ForcedExecutionResult 属性 和CheckPoint调试Package
- input子系统三 核心层和处理器注册
- File类中的list和listFiles方法
- Jquery(八) 属性过滤
- wampserver 3.0.X以上版本怎么切换启用服务器在线状态
- UVA 11426 GCD
- framework层和native层实现联网控制(iptable方式)
- C#
- 图片缓存策略
- ES6新特性之迭代器与for-of循环