对于input子系统这边简单做个总结。下面先看张图(网上下载的,看完它就知道具体的操作流程了):
我们看到在driver中不同的事件有自己实现的code。Input core提供了我们公共使用的相关结构、函数等等。在Input driver层中,我们使用input_allocate_device()、input_register_device()。这些都是Input core中input.c里面提供的。而在Eent handler层里面针对事件的类型的不同,调用具体的.c文件,无一例外,在这些.c中均会调用Input core中提供的input_register_handler(),同时在我们的Input driver中会注册具体的事件类型,这些事件最终会跟Event handler中注册的事件相匹配,而完成app与driver之间的双向通信。 我们自己可以按照从Input core中的input.c的初始化到具体事件驱动,即Event handler,再到具体的Input driver。注意的是具体的通信接口在Event handler中已经给出,handler中的fops定义了相关file operations,供app系统调用之,如open、read等。
阅读(540) | 评论(0) | 转发(0) |