1#include <linux/input.h>
2
3struct label {
4    const char *name;
5    int value;
6};
7
8#define LABEL(constant) { #constant, constant }
9#define LABEL_END { NULL, -1 }
10
11static 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
19static 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
35static 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
43static 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
543static 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
557static 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
600static 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
618static 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
627static 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
642static struct label rep_labels[] = {
643        LABEL(REP_DELAY),
644        LABEL(REP_PERIOD),
645        LABEL_END,
646};
647
648static struct label snd_labels[] = {
649        LABEL(SND_CLICK),
650        LABEL(SND_BELL),
651        LABEL(SND_TONE),
652        LABEL_END,
653};
654
655static 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
663static 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
686static 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
693static 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
700static 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
720static struct label key_value_labels[] = {
721        { "UP", 0 },
722        { "DOWN", 1 },
723        { "REPEAT", 2 },
724        LABEL_END,
725};
726