LDD之input子系统 总结与流程图

原创 2012年03月29日 14:53:20
-----------------------------------------------------------------------
本文系本站原创,欢迎转载!
转载请注明出处:http://blog.csdn.net/android_huber
交流邮箱:dp.shao@gmail.com

-----------------------------------------------------------------------


1.input.cinput_init

注册input,初始化proc,注册设备register_chrdev(INPUT_MAJOR,"input", &input_fops)

2.evdev.c evdev_init

input_register_handler(&evdev_handler)注册handler:将evdev_handler加入到input_handler_list链表中,然后遍历每一个挂在Input_dev_list上的设备调用input_attach_handler

3.inp[ut.c input_register_device

device_Add(&dev->dev)→

Kobject_get_path创建sys接口→

list_add_tail(&dev->node.&input_dev_list)将设备加入全局链表中→

然后遍历input_handler_list中的每一个handler,调用input_attach_handler进行attach

4.input.c input_attach_handler

调用input_match_device检测id匹配情况,然后调用handler中的connect函数:

connect中封装了handleevdev->dev结构体

input_register_handle注册handle,handle可看作handlerdevice的结合

最终调用device_Add(&evdev->dev)

5.input_event

Input_event-->input_handler_event:对type进行switch查找,对不同事件执行不同处理。对于按键和触摸屏,交由handler->event处理。-->

Input_pass_event→

handler->event-->evdev_event函数

evdev_event中封装了input_event,并将该结构体保存在client->buffer[client->head++]数组中。client中的buffer会处理成环形缓冲区,

处理方式:client->head &= EVDEV_BUFFER_SIZE-1

6.evdev.c evdev_read

client中的input_event结构体提取出来,然后将该结构体copy_to_user到应用层。


下面是我刚画好的一个流程图


大家可以参照 下面这篇分析代码的文章一起看

http://blog.csdn.net/android_huber/article/details/7407103

图看不全的话,大家可以保存到本地,然后方便放大了看。

需要清晰大图的请到下面网址去下载

http://download.csdn.net/detail/android_huber/8537241


韦东山LDD自学002-输入子系统总结

  • 2013年03月30日 16:08
  • 276KB
  • 下载

Input输入子系统个人总结

Input输入子系统个人总结Input输入子系统在驱动开发中的重要性,大家都知道, 就不多说了。个人高驱动开发也有一年了,突发奇想想写博客,来写写工作中常遇到的知识点,总结一下,为了更加清晰的理解。我...
  • anlory
  • anlory
  • 2016年06月03日 15:17
  • 925

input 子系统架构总结

Linux输入子系统(Input Subsystem)         Linux 的输入子系统不仅支持鼠标、键盘等常规输入设备,而且还支持蜂鸣器、触摸屏等设备。本章将对 Linux 输 ...
  • lbmygf
  • lbmygf
  • 2012年03月21日 16:57
  • 20355

input 子系统架构总结

Linux输入子系统(Input Subsystem)         Linux 的输入子系统不仅支持鼠标、键盘等常规输入设备,而且还支持蜂鸣器、触摸屏等设备。本章将对 Linux 输 ...

input 子系统架构总结

Linux输入子系统(Input Subsystem)         Linux 的输入子系统不仅支持鼠标、键盘等常规输入设备,而且还支持蜂鸣器、触摸屏等设备。本章将对 Linux 输 入子系统...

input子系统测试例子

  • 2013年05月22日 20:10
  • 4KB
  • 下载

Linux/Android——输入子系统input_event传递 (二)

在前文 Linux/Android——usb触摸屏驱动 - usbtouchscreen 中记录了如何在kernel中添加input device 类型为touchscreen的驱动, 这在整个输...
  • jscese
  • jscese
  • 2014年12月23日 20:13
  • 10407

linux input子系统简单范例

  • 2017年11月18日 21:32
  • 931B
  • 下载

linux_Input子系统键盘驱动详解

  • 2015年09月01日 16:58
  • 38KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LDD之input子系统 总结与流程图
举报原因:
原因补充:

(最多只允许输入30个字)