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...