1STRUCT INPUT_HANDLER(9) Input Subsystem STRUCT INPUT_HANDLER(9)
2
3
4
6 struct_input_handler - implements one of interfaces for input devices
7
9 struct input_handler {
10 void * private;
11 void (* event) (struct input_handle *handle, unsigned int type, unsigned int code, int value);
12 int (* connect) (struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id);
13 void (* disconnect) (struct input_handle *handle);
14 void (* start) (struct input_handle *handle);
15 const struct file_operations * fops;
16 int minor;
17 const char * name;
18 const struct input_device_id * id_table;
19 const struct input_device_id * blacklist;
20 struct list_head h_list;
21 struct list_head node;
22 };
23
25 private
26 driver-specific data
27
28 event
29 event handler. This method is being called by input core with
30 interrupts disabled and dev->event_lock spinlock held and so it may
31 not sleep
32
33 connect
34 called when attaching a handler to an input device
35
36 disconnect
37 disconnects a handler from input device
38
39 start
40 starts handler for given handle. This function is called by input
41 core right after connect method and also when a process that
42 “grabbed” a device releases it
43
44 fops
45 file operations this driver implements
46
47 minor
48 beginning of range of 32 minors for devices this driver can provide
49
50 name
51 name of the handler, to be shown in /proc/bus/input/handlers
52
53 id_table
54 pointer to a table of input_device_ids this driver can handle
55
56 blacklist
57 pointer to a table of input_device_ids this driver should ignore
58 even if they match id_table
59
60 h_list
61 list of input handles associated with the handler
62
63 node
64 for placing the driver onto input_handler_list
65
67 Input handlers attach to input devices and create input handles. There
68 are likely several handlers attached to any given input device at the
69 same time. All of them will get their copy of input event generated by
70 the device.
71
72 Note that input core serializes calls to connect and disconnect
73 methods.
74
76Kernel Hackers Manual 2.6. June 2019 STRUCT INPUT_HANDLER(9)