输入子系统的结构 物理设备 -> input Dirver -> input_core ->input_handler ->上层应用程序
每个输入设备都在/dev/input下生成一个文件,输入设备的驱动需实现文件的相应操作,如read write open 等等
在我们需要为我们设备创建驱动时,我们不需要这么麻烦去实现每个接口,因为这个已经被输入子系统为我们做了,我们只需要注册一个输入设备,input_core(input.c)这层已经帮我们实现了这个设备相应的接口,就是input_hander实现的。
这样我们只需要简单的写一个创建输入设备的驱动,里面的功能:1 分配设备input_allocate_device(),2 标明可以处理的事件类型, 3注册设备 input_register_device。
input_register_device是在input.c中实现,在实现中它为该设备attach所有符合改设备的handler。