Home | History | Annotate | Download | only in toolbox
      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