先看框架图:
再看看代码中的结构:
分析 一下Input_dev结构(include/linux/input.h):
struct input_dev {
const char *name; //设备名
const char *phys; //设备系统层的物理路径
const char *uniq;
struct input_id id; //输入设备ID 总线类型;厂商编号,产品ID,产品版本
unsigned long propbit[BITS_TO_LONGS(INPUT_PROP_CNT)];
unsigned long evbit[BITS_TO_LONGS(EV_CNT)]; //事件类型标志位
unsigned long keybit[BITS_TO_LONGS(KEY_CNT)]; //键盘事件标志位
unsigned long relbit[BITS_TO_LONGS(REL_CNT)]; //相对位移事件标志位
unsigned long absbit[BITS_TO_LONGS(ABS_CNT)]; //绝对位移事件标志位
unsigned long mscbit[BITS_TO_LONGS(MSC_CNT)]; //杂项事件标志位
unsigned long ledbit[BITS_TO_LONGS(LED_CNT)]; //led指示灯标志位
unsigned long sndbit[BITS_TO_LONGS(SND_CNT)]; //声音事件
uns