input_code_analysis
1 Linux设备模型之input子系统详解
一:前言
在键盘驱动代码分析的笔记中,接触到了input子系统.键盘驱动,键盘驱动将检测到的
所有按键都上报给了input子系统。Input子系统是所有I/O设备驱动的中间层,为上层提
供了一个统一的界面。例如,在终端系统中,我们不需要去管有多少个键盘,多少个鼠
标。它只要从input子系统中去取对应的事件(按键,鼠标移位等)就可以了。今天就对i
nput子系统做一个详尽的分析.
二:使用input子系统的例子
在内核自带的文档Documentation/input/input-
programming.txt中。有一个使用input子系统的例子,并附带相应的说明。以此为例分
析如下:
#include
#include
#include
#include
#include
static void button_interrupt(int irq, void *dummy, struct pt_regs *fp)
{
input_report_key(&button_dev, BTN_1, inb(BUTTON_PORT) & 1);
input_sync(&button_dev);
}
static int __init button_init(void)
{
if (request_irq(BUTTON_IRQ, button_interrupt, 0, "button", NULL)) {
printk