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