• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <linux/input.h>
2 
3 struct label {
4     const char *name;
5     int value;
6 };
7 
8 #define LABEL(constant) { #constant, constant }
9 #define LABEL_END { NULL, -1 }
10 
11 static struct label input_prop_labels[] = {
12         LABEL(INPUT_PROP_POINTER),
13         LABEL(INPUT_PROP_DIRECT),
14         LABEL(INPUT_PROP_BUTTONPAD),
15         LABEL(INPUT_PROP_SEMI_MT),
16         LABEL_END,
17 };
18 
19 static struct label ev_labels[] = {
20         LABEL(EV_SYN),
21         LABEL(EV_KEY),
22         LABEL(EV_REL),
23         LABEL(EV_ABS),
24         LABEL(EV_MSC),
25         LABEL(EV_SW),
26         LABEL(EV_LED),
27         LABEL(EV_SND),
28         LABEL(EV_REP),
29         LABEL(EV_FF),
30         LABEL(EV_PWR),
31         LABEL(EV_FF_STATUS),
32         LABEL_END,
33 };
34 
35 static struct label syn_labels[] = {
36         LABEL(SYN_REPORT),
37         LABEL(SYN_CONFIG),
38         LABEL(SYN_MT_REPORT),
39         LABEL(SYN_DROPPED),
40         LABEL_END,
41 };
42 
43 static struct label key_labels[] = {
44         LABEL(KEY_RESERVED),
45         LABEL(KEY_ESC),
46         LABEL(KEY_1),
47         LABEL(KEY_2),
48         LABEL(KEY_3),
49         LABEL(KEY_4),
50         LABEL(KEY_5),
51         LABEL(KEY_6),
52         LABEL(KEY_7),
53         LABEL(KEY_8),
54         LABEL(KEY_9),
55         LABEL(KEY_0),
56         LABEL(KEY_MINUS),
57         LABEL(KEY_EQUAL),
58         LABEL(KEY_BACKSPACE),
59         LABEL(KEY_TAB),
60         LABEL(KEY_Q),
61         LABEL(KEY_W),
62         LABEL(KEY_E),
63         LABEL(KEY_R),
64         LABEL(KEY_T),
65         LABEL(KEY_Y),
66         LABEL(KEY_U),
67         LABEL(KEY_I),
68         LABEL(KEY_O),
69         LABEL(KEY_P),
70         LABEL(KEY_LEFTBRACE),
71         LABEL(KEY_RIGHTBRACE),
72         LABEL(KEY_ENTER),
73         LABEL(KEY_LEFTCTRL),
74         LABEL(KEY_A),
75         LABEL(KEY_S),
76         LABEL(KEY_D),
77         LABEL(KEY_F),
78         LABEL(KEY_G),
79         LABEL(KEY_H),
80         LABEL(KEY_J),
81         LABEL(KEY_K),
82         LABEL(KEY_L),
83         LABEL(KEY_SEMICOLON),
84         LABEL(KEY_APOSTROPHE),
85         LABEL(KEY_GRAVE),
86         LABEL(KEY_LEFTSHIFT),
87         LABEL(KEY_BACKSLASH),
88         LABEL(KEY_Z),
89         LABEL(KEY_X),
90         LABEL(KEY_C),
91         LABEL(KEY_V),
92         LABEL(KEY_B),
93         LABEL(KEY_N),
94         LABEL(KEY_M),
95         LABEL(KEY_COMMA),
96         LABEL(KEY_DOT),
97         LABEL(KEY_SLASH),
98         LABEL(KEY_RIGHTSHIFT),
99         LABEL(KEY_KPASTERISK),
100         LABEL(KEY_LEFTALT),
101         LABEL(KEY_SPACE),
102         LABEL(KEY_CAPSLOCK),
103         LABEL(KEY_F1),
104         LABEL(KEY_F2),
105         LABEL(KEY_F3),
106         LABEL(KEY_F4),
107         LABEL(KEY_F5),
108         LABEL(KEY_F6),
109         LABEL(KEY_F7),
110         LABEL(KEY_F8),
111         LABEL(KEY_F9),
112         LABEL(KEY_F10),
113         LABEL(KEY_NUMLOCK),
114         LABEL(KEY_SCROLLLOCK),
115         LABEL(KEY_KP7),
116         LABEL(KEY_KP8),
117         LABEL(KEY_KP9),
118         LABEL(KEY_KPMINUS),
119         LABEL(KEY_KP4),
120         LABEL(KEY_KP5),
121         LABEL(KEY_KP6),
122         LABEL(KEY_KPPLUS),
123         LABEL(KEY_KP1),
124         LABEL(KEY_KP2),
125         LABEL(KEY_KP3),
126         LABEL(KEY_KP0),
127         LABEL(KEY_KPDOT),
128         LABEL(KEY_ZENKAKUHANKAKU),
129         LABEL(KEY_102ND),
130         LABEL(KEY_F11),
131         LABEL(KEY_F12),
132         LABEL(KEY_RO),
133         LABEL(KEY_KATAKANA),
134         LABEL(KEY_HIRAGANA),
135         LABEL(KEY_HENKAN),
136         LABEL(KEY_KATAKANAHIRAGANA),
137         LABEL(KEY_MUHENKAN),
138         LABEL(KEY_KPJPCOMMA),
139         LABEL(KEY_KPENTER),
140         LABEL(KEY_RIGHTCTRL),
141         LABEL(KEY_KPSLASH),
142         LABEL(KEY_SYSRQ),
143         LABEL(KEY_RIGHTALT),
144         LABEL(KEY_LINEFEED),
145         LABEL(KEY_HOME),
146         LABEL(KEY_UP),
147         LABEL(KEY_PAGEUP),
148         LABEL(KEY_LEFT),
149         LABEL(KEY_RIGHT),
150         LABEL(KEY_END),
151         LABEL(KEY_DOWN),
152         LABEL(KEY_PAGEDOWN),
153         LABEL(KEY_INSERT),
154         LABEL(KEY_DELETE),
155         LABEL(KEY_MACRO),
156         LABEL(KEY_MUTE),
157         LABEL(KEY_VOLUMEDOWN),
158         LABEL(KEY_VOLUMEUP),
159         LABEL(KEY_POWER),
160         LABEL(KEY_KPEQUAL),
161         LABEL(KEY_KPPLUSMINUS),
162         LABEL(KEY_PAUSE),
163         LABEL(KEY_SCALE),
164         LABEL(KEY_KPCOMMA),
165         LABEL(KEY_HANGEUL),
166         LABEL(KEY_HANGUEL),
167         LABEL(KEY_HANJA),
168         LABEL(KEY_YEN),
169         LABEL(KEY_LEFTMETA),
170         LABEL(KEY_RIGHTMETA),
171         LABEL(KEY_COMPOSE),
172         LABEL(KEY_STOP),
173         LABEL(KEY_AGAIN),
174         LABEL(KEY_PROPS),
175         LABEL(KEY_UNDO),
176         LABEL(KEY_FRONT),
177         LABEL(KEY_COPY),
178         LABEL(KEY_OPEN),
179         LABEL(KEY_PASTE),
180         LABEL(KEY_FIND),
181         LABEL(KEY_CUT),
182         LABEL(KEY_HELP),
183         LABEL(KEY_MENU),
184         LABEL(KEY_CALC),
185         LABEL(KEY_SETUP),
186         LABEL(KEY_SLEEP),
187         LABEL(KEY_WAKEUP),
188         LABEL(KEY_FILE),
189         LABEL(KEY_SENDFILE),
190         LABEL(KEY_DELETEFILE),
191         LABEL(KEY_XFER),
192         LABEL(KEY_PROG1),
193         LABEL(KEY_PROG2),
194         LABEL(KEY_WWW),
195         LABEL(KEY_MSDOS),
196         LABEL(KEY_COFFEE),
197         LABEL(KEY_SCREENLOCK),
198         LABEL(KEY_DIRECTION),
199         LABEL(KEY_CYCLEWINDOWS),
200         LABEL(KEY_MAIL),
201         LABEL(KEY_BOOKMARKS),
202         LABEL(KEY_COMPUTER),
203         LABEL(KEY_BACK),
204         LABEL(KEY_FORWARD),
205         LABEL(KEY_CLOSECD),
206         LABEL(KEY_EJECTCD),
207         LABEL(KEY_EJECTCLOSECD),
208         LABEL(KEY_NEXTSONG),
209         LABEL(KEY_PLAYPAUSE),
210         LABEL(KEY_PREVIOUSSONG),
211         LABEL(KEY_STOPCD),
212         LABEL(KEY_RECORD),
213         LABEL(KEY_REWIND),
214         LABEL(KEY_PHONE),
215         LABEL(KEY_ISO),
216         LABEL(KEY_CONFIG),
217         LABEL(KEY_HOMEPAGE),
218         LABEL(KEY_REFRESH),
219         LABEL(KEY_EXIT),
220         LABEL(KEY_MOVE),
221         LABEL(KEY_EDIT),
222         LABEL(KEY_SCROLLUP),
223         LABEL(KEY_SCROLLDOWN),
224         LABEL(KEY_KPLEFTPAREN),
225         LABEL(KEY_KPRIGHTPAREN),
226         LABEL(KEY_NEW),
227         LABEL(KEY_REDO),
228         LABEL(KEY_F13),
229         LABEL(KEY_F14),
230         LABEL(KEY_F15),
231         LABEL(KEY_F16),
232         LABEL(KEY_F17),
233         LABEL(KEY_F18),
234         LABEL(KEY_F19),
235         LABEL(KEY_F20),
236         LABEL(KEY_F21),
237         LABEL(KEY_F22),
238         LABEL(KEY_F23),
239         LABEL(KEY_F24),
240         LABEL(KEY_PLAYCD),
241         LABEL(KEY_PAUSECD),
242         LABEL(KEY_PROG3),
243         LABEL(KEY_PROG4),
244         LABEL(KEY_DASHBOARD),
245         LABEL(KEY_SUSPEND),
246         LABEL(KEY_CLOSE),
247         LABEL(KEY_PLAY),
248         LABEL(KEY_FASTFORWARD),
249         LABEL(KEY_BASSBOOST),
250         LABEL(KEY_PRINT),
251         LABEL(KEY_HP),
252         LABEL(KEY_CAMERA),
253         LABEL(KEY_SOUND),
254         LABEL(KEY_QUESTION),
255         LABEL(KEY_EMAIL),
256         LABEL(KEY_CHAT),
257         LABEL(KEY_SEARCH),
258         LABEL(KEY_CONNECT),
259         LABEL(KEY_FINANCE),
260         LABEL(KEY_SPORT),
261         LABEL(KEY_SHOP),
262         LABEL(KEY_ALTERASE),
263         LABEL(KEY_CANCEL),
264         LABEL(KEY_BRIGHTNESSDOWN),
265         LABEL(KEY_BRIGHTNESSUP),
266         LABEL(KEY_MEDIA),
267         LABEL(KEY_SWITCHVIDEOMODE),
268         LABEL(KEY_KBDILLUMTOGGLE),
269         LABEL(KEY_KBDILLUMDOWN),
270         LABEL(KEY_KBDILLUMUP),
271         LABEL(KEY_SEND),
272         LABEL(KEY_REPLY),
273         LABEL(KEY_FORWARDMAIL),
274         LABEL(KEY_SAVE),
275         LABEL(KEY_DOCUMENTS),
276         LABEL(KEY_BATTERY),
277         LABEL(KEY_BLUETOOTH),
278         LABEL(KEY_WLAN),
279         LABEL(KEY_UWB),
280         LABEL(KEY_UNKNOWN),
281         LABEL(KEY_VIDEO_NEXT),
282         LABEL(KEY_VIDEO_PREV),
283         LABEL(KEY_BRIGHTNESS_CYCLE),
284         LABEL(KEY_BRIGHTNESS_ZERO),
285         LABEL(KEY_DISPLAY_OFF),
286         LABEL(KEY_WIMAX),
287         LABEL(KEY_RFKILL),
288         LABEL(BTN_0),
289         LABEL(BTN_1),
290         LABEL(BTN_2),
291         LABEL(BTN_3),
292         LABEL(BTN_4),
293         LABEL(BTN_5),
294         LABEL(BTN_6),
295         LABEL(BTN_7),
296         LABEL(BTN_8),
297         LABEL(BTN_9),
298         LABEL(BTN_LEFT),
299         LABEL(BTN_RIGHT),
300         LABEL(BTN_MIDDLE),
301         LABEL(BTN_SIDE),
302         LABEL(BTN_EXTRA),
303         LABEL(BTN_FORWARD),
304         LABEL(BTN_BACK),
305         LABEL(BTN_TASK),
306         LABEL(BTN_JOYSTICK),
307         LABEL(BTN_TRIGGER),
308         LABEL(BTN_THUMB),
309         LABEL(BTN_THUMB2),
310         LABEL(BTN_TOP),
311         LABEL(BTN_TOP2),
312         LABEL(BTN_PINKIE),
313         LABEL(BTN_BASE),
314         LABEL(BTN_BASE2),
315         LABEL(BTN_BASE3),
316         LABEL(BTN_BASE4),
317         LABEL(BTN_BASE5),
318         LABEL(BTN_BASE6),
319         LABEL(BTN_DEAD),
320         LABEL(BTN_A),
321         LABEL(BTN_B),
322         LABEL(BTN_C),
323         LABEL(BTN_X),
324         LABEL(BTN_Y),
325         LABEL(BTN_Z),
326         LABEL(BTN_TL),
327         LABEL(BTN_TR),
328         LABEL(BTN_TL2),
329         LABEL(BTN_TR2),
330         LABEL(BTN_SELECT),
331         LABEL(BTN_START),
332         LABEL(BTN_MODE),
333         LABEL(BTN_THUMBL),
334         LABEL(BTN_THUMBR),
335         LABEL(BTN_TOOL_PEN),
336         LABEL(BTN_TOOL_RUBBER),
337         LABEL(BTN_TOOL_BRUSH),
338         LABEL(BTN_TOOL_PENCIL),
339         LABEL(BTN_TOOL_AIRBRUSH),
340         LABEL(BTN_TOOL_FINGER),
341         LABEL(BTN_TOOL_MOUSE),
342         LABEL(BTN_TOOL_LENS),
343         LABEL(BTN_TOUCH),
344         LABEL(BTN_STYLUS),
345         LABEL(BTN_STYLUS2),
346         LABEL(BTN_TOOL_DOUBLETAP),
347         LABEL(BTN_TOOL_TRIPLETAP),
348         LABEL(BTN_TOOL_QUADTAP),
349         LABEL(BTN_GEAR_DOWN),
350         LABEL(BTN_GEAR_UP),
351         LABEL(KEY_OK),
352         LABEL(KEY_SELECT),
353         LABEL(KEY_GOTO),
354         LABEL(KEY_CLEAR),
355         LABEL(KEY_POWER2),
356         LABEL(KEY_OPTION),
357         LABEL(KEY_INFO),
358         LABEL(KEY_TIME),
359         LABEL(KEY_VENDOR),
360         LABEL(KEY_ARCHIVE),
361         LABEL(KEY_PROGRAM),
362         LABEL(KEY_CHANNEL),
363         LABEL(KEY_FAVORITES),
364         LABEL(KEY_EPG),
365         LABEL(KEY_PVR),
366         LABEL(KEY_MHP),
367         LABEL(KEY_LANGUAGE),
368         LABEL(KEY_TITLE),
369         LABEL(KEY_SUBTITLE),
370         LABEL(KEY_ANGLE),
371         LABEL(KEY_ZOOM),
372         LABEL(KEY_MODE),
373         LABEL(KEY_KEYBOARD),
374         LABEL(KEY_SCREEN),
375         LABEL(KEY_PC),
376         LABEL(KEY_TV),
377         LABEL(KEY_TV2),
378         LABEL(KEY_VCR),
379         LABEL(KEY_VCR2),
380         LABEL(KEY_SAT),
381         LABEL(KEY_SAT2),
382         LABEL(KEY_CD),
383         LABEL(KEY_TAPE),
384         LABEL(KEY_RADIO),
385         LABEL(KEY_TUNER),
386         LABEL(KEY_PLAYER),
387         LABEL(KEY_TEXT),
388         LABEL(KEY_DVD),
389         LABEL(KEY_AUX),
390         LABEL(KEY_MP3),
391         LABEL(KEY_AUDIO),
392         LABEL(KEY_VIDEO),
393         LABEL(KEY_DIRECTORY),
394         LABEL(KEY_LIST),
395         LABEL(KEY_MEMO),
396         LABEL(KEY_CALENDAR),
397         LABEL(KEY_RED),
398         LABEL(KEY_GREEN),
399         LABEL(KEY_YELLOW),
400         LABEL(KEY_BLUE),
401         LABEL(KEY_CHANNELUP),
402         LABEL(KEY_CHANNELDOWN),
403         LABEL(KEY_FIRST),
404         LABEL(KEY_LAST),
405         LABEL(KEY_AB),
406         LABEL(KEY_NEXT),
407         LABEL(KEY_RESTART),
408         LABEL(KEY_SLOW),
409         LABEL(KEY_SHUFFLE),
410         LABEL(KEY_BREAK),
411         LABEL(KEY_PREVIOUS),
412         LABEL(KEY_DIGITS),
413         LABEL(KEY_TEEN),
414         LABEL(KEY_TWEN),
415         LABEL(KEY_VIDEOPHONE),
416         LABEL(KEY_GAMES),
417         LABEL(KEY_ZOOMIN),
418         LABEL(KEY_ZOOMOUT),
419         LABEL(KEY_ZOOMRESET),
420         LABEL(KEY_WORDPROCESSOR),
421         LABEL(KEY_EDITOR),
422         LABEL(KEY_SPREADSHEET),
423         LABEL(KEY_GRAPHICSEDITOR),
424         LABEL(KEY_PRESENTATION),
425         LABEL(KEY_DATABASE),
426         LABEL(KEY_NEWS),
427         LABEL(KEY_VOICEMAIL),
428         LABEL(KEY_ADDRESSBOOK),
429         LABEL(KEY_MESSENGER),
430         LABEL(KEY_DISPLAYTOGGLE),
431         LABEL(KEY_SPELLCHECK),
432         LABEL(KEY_LOGOFF),
433         LABEL(KEY_DOLLAR),
434         LABEL(KEY_EURO),
435         LABEL(KEY_FRAMEBACK),
436         LABEL(KEY_FRAMEFORWARD),
437         LABEL(KEY_CONTEXT_MENU),
438         LABEL(KEY_MEDIA_REPEAT),
439         LABEL(KEY_10CHANNELSUP),
440         LABEL(KEY_10CHANNELSDOWN),
441         LABEL(KEY_IMAGES),
442         LABEL(KEY_DEL_EOL),
443         LABEL(KEY_DEL_EOS),
444         LABEL(KEY_INS_LINE),
445         LABEL(KEY_DEL_LINE),
446         LABEL(KEY_FN),
447         LABEL(KEY_FN_ESC),
448         LABEL(KEY_FN_F1),
449         LABEL(KEY_FN_F2),
450         LABEL(KEY_FN_F3),
451         LABEL(KEY_FN_F4),
452         LABEL(KEY_FN_F5),
453         LABEL(KEY_FN_F6),
454         LABEL(KEY_FN_F7),
455         LABEL(KEY_FN_F8),
456         LABEL(KEY_FN_F9),
457         LABEL(KEY_FN_F10),
458         LABEL(KEY_FN_F11),
459         LABEL(KEY_FN_F12),
460         LABEL(KEY_FN_1),
461         LABEL(KEY_FN_2),
462         LABEL(KEY_FN_D),
463         LABEL(KEY_FN_E),
464         LABEL(KEY_FN_F),
465         LABEL(KEY_FN_S),
466         LABEL(KEY_FN_B),
467         LABEL(KEY_BRL_DOT1),
468         LABEL(KEY_BRL_DOT2),
469         LABEL(KEY_BRL_DOT3),
470         LABEL(KEY_BRL_DOT4),
471         LABEL(KEY_BRL_DOT5),
472         LABEL(KEY_BRL_DOT6),
473         LABEL(KEY_BRL_DOT7),
474         LABEL(KEY_BRL_DOT8),
475         LABEL(KEY_BRL_DOT9),
476         LABEL(KEY_BRL_DOT10),
477         LABEL(KEY_NUMERIC_0),
478         LABEL(KEY_NUMERIC_1),
479         LABEL(KEY_NUMERIC_2),
480         LABEL(KEY_NUMERIC_3),
481         LABEL(KEY_NUMERIC_4),
482         LABEL(KEY_NUMERIC_5),
483         LABEL(KEY_NUMERIC_6),
484         LABEL(KEY_NUMERIC_7),
485         LABEL(KEY_NUMERIC_8),
486         LABEL(KEY_NUMERIC_9),
487         LABEL(KEY_NUMERIC_STAR),
488         LABEL(KEY_NUMERIC_POUND),
489         LABEL(KEY_CAMERA_FOCUS),
490         LABEL(KEY_WPS_BUTTON),
491         LABEL(KEY_TOUCHPAD_TOGGLE),
492         LABEL(KEY_TOUCHPAD_ON),
493         LABEL(KEY_TOUCHPAD_OFF),
494         LABEL(KEY_CAMERA_ZOOMIN),
495         LABEL(KEY_CAMERA_ZOOMOUT),
496         LABEL(KEY_CAMERA_UP),
497         LABEL(KEY_CAMERA_DOWN),
498         LABEL(KEY_CAMERA_LEFT),
499         LABEL(KEY_CAMERA_RIGHT),
500         LABEL(BTN_TRIGGER_HAPPY1),
501         LABEL(BTN_TRIGGER_HAPPY2),
502         LABEL(BTN_TRIGGER_HAPPY3),
503         LABEL(BTN_TRIGGER_HAPPY4),
504         LABEL(BTN_TRIGGER_HAPPY5),
505         LABEL(BTN_TRIGGER_HAPPY6),
506         LABEL(BTN_TRIGGER_HAPPY7),
507         LABEL(BTN_TRIGGER_HAPPY8),
508         LABEL(BTN_TRIGGER_HAPPY9),
509         LABEL(BTN_TRIGGER_HAPPY10),
510         LABEL(BTN_TRIGGER_HAPPY11),
511         LABEL(BTN_TRIGGER_HAPPY12),
512         LABEL(BTN_TRIGGER_HAPPY13),
513         LABEL(BTN_TRIGGER_HAPPY14),
514         LABEL(BTN_TRIGGER_HAPPY15),
515         LABEL(BTN_TRIGGER_HAPPY16),
516         LABEL(BTN_TRIGGER_HAPPY17),
517         LABEL(BTN_TRIGGER_HAPPY18),
518         LABEL(BTN_TRIGGER_HAPPY19),
519         LABEL(BTN_TRIGGER_HAPPY20),
520         LABEL(BTN_TRIGGER_HAPPY21),
521         LABEL(BTN_TRIGGER_HAPPY22),
522         LABEL(BTN_TRIGGER_HAPPY23),
523         LABEL(BTN_TRIGGER_HAPPY24),
524         LABEL(BTN_TRIGGER_HAPPY25),
525         LABEL(BTN_TRIGGER_HAPPY26),
526         LABEL(BTN_TRIGGER_HAPPY27),
527         LABEL(BTN_TRIGGER_HAPPY28),
528         LABEL(BTN_TRIGGER_HAPPY29),
529         LABEL(BTN_TRIGGER_HAPPY30),
530         LABEL(BTN_TRIGGER_HAPPY31),
531         LABEL(BTN_TRIGGER_HAPPY32),
532         LABEL(BTN_TRIGGER_HAPPY33),
533         LABEL(BTN_TRIGGER_HAPPY34),
534         LABEL(BTN_TRIGGER_HAPPY35),
535         LABEL(BTN_TRIGGER_HAPPY36),
536         LABEL(BTN_TRIGGER_HAPPY37),
537         LABEL(BTN_TRIGGER_HAPPY38),
538         LABEL(BTN_TRIGGER_HAPPY39),
539         LABEL(BTN_TRIGGER_HAPPY40),
540         LABEL_END,
541 };
542 
543 static struct label rel_labels[] = {
544         LABEL(REL_X),
545         LABEL(REL_Y),
546         LABEL(REL_Z),
547         LABEL(REL_RX),
548         LABEL(REL_RY),
549         LABEL(REL_RZ),
550         LABEL(REL_HWHEEL),
551         LABEL(REL_DIAL),
552         LABEL(REL_WHEEL),
553         LABEL(REL_MISC),
554         LABEL_END,
555 };
556 
557 static struct label abs_labels[] = {
558         LABEL(ABS_X),
559         LABEL(ABS_Y),
560         LABEL(ABS_Z),
561         LABEL(ABS_RX),
562         LABEL(ABS_RY),
563         LABEL(ABS_RZ),
564         LABEL(ABS_THROTTLE),
565         LABEL(ABS_RUDDER),
566         LABEL(ABS_WHEEL),
567         LABEL(ABS_GAS),
568         LABEL(ABS_BRAKE),
569         LABEL(ABS_HAT0X),
570         LABEL(ABS_HAT0Y),
571         LABEL(ABS_HAT1X),
572         LABEL(ABS_HAT1Y),
573         LABEL(ABS_HAT2X),
574         LABEL(ABS_HAT2Y),
575         LABEL(ABS_HAT3X),
576         LABEL(ABS_HAT3Y),
577         LABEL(ABS_PRESSURE),
578         LABEL(ABS_DISTANCE),
579         LABEL(ABS_TILT_X),
580         LABEL(ABS_TILT_Y),
581         LABEL(ABS_TOOL_WIDTH),
582         LABEL(ABS_VOLUME),
583         LABEL(ABS_MISC),
584         LABEL(ABS_MT_SLOT),
585         LABEL(ABS_MT_TOUCH_MAJOR),
586         LABEL(ABS_MT_TOUCH_MINOR),
587         LABEL(ABS_MT_WIDTH_MAJOR),
588         LABEL(ABS_MT_WIDTH_MINOR),
589         LABEL(ABS_MT_ORIENTATION),
590         LABEL(ABS_MT_POSITION_X),
591         LABEL(ABS_MT_POSITION_Y),
592         LABEL(ABS_MT_TOOL_TYPE),
593         LABEL(ABS_MT_BLOB_ID),
594         LABEL(ABS_MT_TRACKING_ID),
595         LABEL(ABS_MT_PRESSURE),
596         LABEL(ABS_MT_DISTANCE),
597         LABEL_END,
598 };
599 
600 static struct label sw_labels[] = {
601         LABEL(SW_LID),
602         LABEL(SW_TABLET_MODE),
603         LABEL(SW_HEADPHONE_INSERT),
604         LABEL(SW_RFKILL_ALL),
605         LABEL(SW_RADIO),
606         LABEL(SW_MICROPHONE_INSERT),
607         LABEL(SW_DOCK),
608         LABEL(SW_LINEOUT_INSERT),
609         LABEL(SW_JACK_PHYSICAL_INSERT),
610         LABEL(SW_VIDEOOUT_INSERT),
611         LABEL(SW_CAMERA_LENS_COVER),
612         LABEL(SW_KEYPAD_SLIDE),
613         LABEL(SW_FRONT_PROXIMITY),
614         LABEL(SW_ROTATE_LOCK),
615         LABEL_END,
616 };
617 
618 static struct label msc_labels[] = {
619         LABEL(MSC_SERIAL),
620         LABEL(MSC_PULSELED),
621         LABEL(MSC_GESTURE),
622         LABEL(MSC_RAW),
623         LABEL(MSC_SCAN),
624         LABEL_END,
625 };
626 
627 static struct label led_labels[] = {
628         LABEL(LED_NUML),
629         LABEL(LED_CAPSL),
630         LABEL(LED_SCROLLL),
631         LABEL(LED_COMPOSE),
632         LABEL(LED_KANA),
633         LABEL(LED_SLEEP),
634         LABEL(LED_SUSPEND),
635         LABEL(LED_MUTE),
636         LABEL(LED_MISC),
637         LABEL(LED_MAIL),
638         LABEL(LED_CHARGING),
639         LABEL_END,
640 };
641 
642 static struct label rep_labels[] = {
643         LABEL(REP_DELAY),
644         LABEL(REP_PERIOD),
645         LABEL_END,
646 };
647 
648 static struct label snd_labels[] = {
649         LABEL(SND_CLICK),
650         LABEL(SND_BELL),
651         LABEL(SND_TONE),
652         LABEL_END,
653 };
654 
655 static struct label id_labels[] = {
656         LABEL(ID_BUS),
657         LABEL(ID_VENDOR),
658         LABEL(ID_PRODUCT),
659         LABEL(ID_VERSION),
660         LABEL_END,
661 };
662 
663 static struct label bus_labels[] = {
664         LABEL(BUS_PCI),
665         LABEL(BUS_ISAPNP),
666         LABEL(BUS_USB),
667         LABEL(BUS_HIL),
668         LABEL(BUS_BLUETOOTH),
669         LABEL(BUS_VIRTUAL),
670         LABEL(BUS_ISA),
671         LABEL(BUS_I8042),
672         LABEL(BUS_XTKBD),
673         LABEL(BUS_RS232),
674         LABEL(BUS_GAMEPORT),
675         LABEL(BUS_PARPORT),
676         LABEL(BUS_AMIGA),
677         LABEL(BUS_ADB),
678         LABEL(BUS_I2C),
679         LABEL(BUS_HOST),
680         LABEL(BUS_GSC),
681         LABEL(BUS_ATARI),
682         LABEL(BUS_SPI),
683         LABEL_END,
684 };
685 
686 static struct label mt_tool_labels[] = {
687         LABEL(MT_TOOL_FINGER),
688         LABEL(MT_TOOL_PEN),
689         LABEL(MT_TOOL_MAX),
690         LABEL_END,
691 };
692 
693 static struct label ff_status_labels[] = {
694         LABEL(FF_STATUS_STOPPED),
695         LABEL(FF_STATUS_PLAYING),
696         LABEL(FF_STATUS_MAX),
697         LABEL_END,
698 };
699 
700 static struct label ff_labels[] = {
701         LABEL(FF_RUMBLE),
702         LABEL(FF_PERIODIC),
703         LABEL(FF_CONSTANT),
704         LABEL(FF_SPRING),
705         LABEL(FF_FRICTION),
706         LABEL(FF_DAMPER),
707         LABEL(FF_INERTIA),
708         LABEL(FF_RAMP),
709         LABEL(FF_SQUARE),
710         LABEL(FF_TRIANGLE),
711         LABEL(FF_SINE),
712         LABEL(FF_SAW_UP),
713         LABEL(FF_SAW_DOWN),
714         LABEL(FF_CUSTOM),
715         LABEL(FF_GAIN),
716         LABEL(FF_AUTOCENTER),
717         LABEL_END,
718 };
719 
720 static struct label key_value_labels[] = {
721         { "UP", 0 },
722         { "DOWN", 1 },
723         { "REPEAT", 2 },
724         LABEL_END,
725 };
726