Introduction to the Linux kernel input subsystem – its data structures and APIs
The main data structures and APIs of this subsystem can be found in the include
/linux
/input.h
files. The following line is required in any input device driver:
#include <linux/input.h>
Whatever type of input device it is, whatever type of event it sends, an input device is represented in the kernel as an instance of the struct input_dev
:
struct input_dev { const char *name; const char *phys; 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 int repeat_key; int rep[REP_CNT]; struct input_absinfo *absinfo; unsigned long key[BITS_TO_LONGS(KEY_CNT)]; int (*open...