The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/hpc/hpckbdkeymap.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: hpckbdkeymap.h,v 1.48 2008/04/28 20:23:48 martin Exp $ */
    2 
    3 /*-
    4  * Copyright (c) 1999-2002 The NetBSD Foundation, Inc.
    5  * All rights reserved.
    6  *
    7  * Redistribution and use in source and binary forms, with or without
    8  * modification, are permitted provided that the following conditions
    9  * are met:
   10  * 1. Redistributions of source code must retain the above copyright
   11  *    notice, this list of conditions and the following disclaimer.
   12  * 2. Redistributions in binary form must reproduce the above copyright
   13  *    notice, this list of conditions and the following disclaimer in the
   14  *    documentation and/or other materials provided with the distribution.
   15  *
   16  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   17  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   18  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   19  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   20  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   21  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   22  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   23  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   24  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   25  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   26  * POSSIBILITY OF SUCH DAMAGE.
   27  */
   28 
   29 #define UNK             255     /* unknown */
   30 #define IGN             254     /* ignore */
   31 #define SPL             253     /* special key */
   32 #define KC(n)           KS_KEYCODE(n)
   33 #define CMDMAP(map)     { map, (sizeof(map)/sizeof(keysym_t)) }
   34 #define NULLCMDMAP      { NULL, 0 }
   35 
   36 #define KEY_SPECIAL_OFF         0
   37 #define KEY_SPECIAL_LIGHT       1
   38 
   39 const uint8_t default_keymap[] = {
   40 /*      0    1    2    3    4    5    6    7 */
   41 /* 0 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   42 /* 1 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   43 /* 2 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   44 /* 3 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   45 /* 4 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   46 /* 5 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   47 /* 6 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   48 /* 7 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   49 /* 8 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   50 /* 9 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   51 /*10 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   52 /*11 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   53 /*12 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   54 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   55 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   56 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK
   57 };
   58 
   59 const int default_special_keymap[] = {
   60         [KEY_SPECIAL_OFF]       = -1,
   61         [KEY_SPECIAL_LIGHT]     = -1
   62 };
   63 
   64 #ifdef hpcmips
   65 const uint8_t tc5165_mobilon_keymap[] = {
   66 /*      0    1    2    3    4    5    6    7 */
   67 /* 0 */ 37 , 45 , 44 , UNK, 9  , 51 , 23 , UNK,
   68 /* 1 */ UNK, 56 , UNK, UNK, UNK, UNK, UNK, UNK,
   69 /* 2 */ UNK, UNK, 29 , UNK, UNK, UNK, UNK, UNK,
   70 /* 3 */ 24 , 203, UNK, 38 , 10 , 27 , 13 , UNK,
   71 /* 4 */ 40 , UNK, UNK, 39 , 26 , 53 , 11 , 12 ,
   72 /* 5 */ UNK, UNK, UNK, 53 , 25 , UNK, UNK, SPL, /* Light */
   73 /* 6 */ 208, UNK, UNK, UNK, 52 , UNK, 43 , 14 ,
   74 /* 7 */ 205, 200, UNK, UNK, SPL, UNK, UNK, 28 , /* Off key */
   75 /* 8 */ UNK, 41 , 59 , 15 , 2  , UNK, UNK, UNK,
   76 /* 9 */ 63 , 64 , 1  , UNK, 65 , 16 , 17 , UNK,
   77 /*10 */ 60 , UNK, 61 , 62 , 3  , UNK, UNK, UNK,
   78 /*11 */ UNK, UNK, UNK, 42 , 58 , UNK, UNK, UNK,
   79 /*12 */ 47 , 33 , 46 , 5  , 4  , 18 , 19 , UNK,
   80 /*13 */ 34 , 35 , 20 , 48 , 6  , 7  , 21 , 49 ,
   81 /*14 */ 22 , 31 , 32 , 36 , 8  , 30 , 50 , 57 ,
   82 /*15 */ UNK, IGN, UNK, UNK, UNK, UNK, UNK, UNK /* Windows key */
   83 };
   84 
   85 const int tc5165_mobilon_special_keymap[] = {
   86         [KEY_SPECIAL_OFF]       = -1,   /* 60 */
   87         [KEY_SPECIAL_LIGHT]     = 47
   88 };
   89 
   90 const uint8_t tc5165_telios_jp_keymap[] = {
   91 /*      0    1    2    3    4    5    6    7 */
   92 /* 0 */ 58,  15,  IGN, 1,   IGN, IGN, IGN, IGN,
   93 /* 1 */ IGN, IGN, IGN, IGN, 54,  42,  IGN, IGN,
   94 /* 2 */ 31,  18,  4,   IGN, IGN, 32,  45,  59,
   95 /* 3 */ 33,  19,  5,   61,  IGN, 46,  123, 60,
   96 /* 4 */ 35,  21,  8,   64,  IGN, 48,  49,  63,
   97 /* 5 */ 17,  16,  3,   IGN, 2,   30,  44,  41,
   98 /* 6 */ IGN, IGN, IGN, IGN, IGN, IGN, 221, IGN,
   99 /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, 56,  IGN,
  100 /* 8 */ 34,  20,  7,   IGN, 6,   47,  57,  62,
  101 /* 9 */ IGN, IGN, IGN, IGN, IGN, IGN, 29,  IGN,
  102 /*10 */ 27,  125, 13,  203, 208, 40,  115, 68,
  103 /*11 */ 39,  26,  25,  112, 12,  52,  53,  67,
  104 /*12 */ 37,  24,  11,  121, 10,  38,  51,  66,
  105 /*13 */ 23,  22,  9,   IGN, IGN, 36,  50,  65,
  106 /*14 */ 28,  43,  14,  200, 205, IGN, IGN, 211,
  107 /*15 */ IGN, IGN, IGN, IGN, IGN, IGN, 184, IGN
  108 };
  109 
  110 static const keysym_t tc5165_telios_jp_cmdmap[] = {
  111 /*      pos      command                normal          shifted         */
  112         KC(184), KS_Cmd,                KS_Alt_R,       KS_Multi_key,
  113         KC(205), KS_Cmd_BrightnessUp,   KS_Right,
  114         KC(203), KS_Cmd_BrightnessDown, KS_Left,
  115         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  116 };
  117 
  118 const uint8_t tc5165_compaq_c_jp_keymap[] = {
  119 /*      0    1    2    3    4    5    6    7 */
  120 /* 0 */ 38,  50,  49,  48,  47,  46,  45,  44,
  121 /* 1 */ 56,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  122 /* 2 */ 13,  IGN, 112, 121, 123, 41,  28,  57,
  123 /* 3 */ 205, 203, 208, 200, 39,  53,  52,  51,
  124 /* 4 */ 24,  25,  40,  IGN, 43,  26,  115, 58,
  125 /* 5 */ 54,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  126 /* 6 */ IGN, IGN, IGN, SPL, IGN, IGN, IGN, IGN, /* Light */
  127 /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  128 /* 8 */ 42,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  129 /* 9 */ 29,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  130 /*10 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  131 /*11 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  132 /*12 */ 14,  27,  12,  11,  10,  15,  1,   125,
  133 /*13 */ 9,   8,   7,   6,   5,   4,   3,   2,
  134 /*14 */ 23,  22,  21,  20,  19,  18,  17,  16,
  135 /*15 */ 37,  36,  35,  34,  33,  32,  31,  30
  136 };
  137 
  138 const int tc5165_compaq_c_jp_special_keymap[] = {
  139         [KEY_SPECIAL_OFF]       = -1, /* don't have off button */
  140         [KEY_SPECIAL_LIGHT]     = 51
  141 };
  142 
  143 const uint8_t m38813c_keymap[] = {
  144 /*      0    1    2    3    4    5    6    7 */
  145 /* 0 */ 0,   1,   2,   3,   4,   5,   6,   7,
  146 /* 1 */ 8,   9,   10,  11,  12,  13,  14,  15,
  147 /* 2 */ 16,  17,  18,  19,  20,  21,  22,  23,
  148 /* 3 */ 24,  25,  26,  27,  28,  29,  30,  31,
  149 /* 4 */ 32,  33,  34,  35,  36,  37,  38,  39,
  150 /* 5 */ 40,  41,  42,  43,  44,  45,  46,  47,
  151 /* 6 */ 48,  49,  50,  51,  52,  53,  54,  55,
  152 /* 7 */ 56,  57,  58,  59,  60,  61,  62,  63,
  153 /* 8 */ 64,  65,  66,  67,  68,  69,  70,  71,
  154 /* 9 */ 200, 73,  74,  203, 76,  205,  78,  79,
  155 /*10 */ 208, 81,  82,  83,  84,  85,  86,  87,
  156 /*11 */ 88,  89,  90,  91,  92,  93,  94,  95,
  157 /*12 */ 96,  97,  98,  99,  100, 101, 102, 103,
  158 /*13 */ 104, 105, 106, 107, 108, 109, 110, 111,
  159 /*14 */ 112, 113, 114, 115, 116, 117, 118, 119,
  160 /*15 */ 120, 121, 122, 123, 124, 125, 126, 127
  161 };
  162 
  163 /* NEC MobileGearII MCR series (Japan) */
  164 static uint8_t mcr_jp_keytrans[] = {
  165 /*00    right   ent     p       .       y       b       z       space   */
  166 /*08    down    /       o       ,       t       v       a       nfer    */
  167 /*10    left    \       i       m       r       c       w       menu    */
  168 /*18    ^       -       u       -       e       x       q       1       */
  169 /*20    pgdn    h/z     0       l       :       g       tab     f1      */
  170 /*28    xfer    ;       9       n       5       f       2       k       */
  171 /*30    up      [       8       j       4       d       6       -       */
  172 /*38    -       @       7       h       3       ]       s       -       */
  173 /*40    caps    -       -       -       bs      fnc     f8      f3      */
  174 /*48    -       alt     -       -       |       k/h     f7      f4      */
  175 /*50    -       -       ctrl    -       f10     pgup    f6      f2      */
  176 /*58    -       -       -       shift   del     f9      f5      esc     */
  177 /*----------------------------------------------------------------------*/
  178 /*00*/  205,     28,     25,     52,     21,     48,     44,     57,
  179 /*08*/  208,     53,     24,     51,     20,     47,     30,    123,
  180 /*10*/  203,    115,     23,     50,     19,     46,     17,    221,
  181 /*18*/   13,    IGN,     22,    IGN,     18,     45,     16,      2,
  182 /*20*/   81,     41,     11,     38,     40,     34,     15,     59,
  183 /*28*/  121,     39,     10,     49,      6,     33,      3,     37,
  184 /*30*/  200,     27,      9,     36,      5,     32,      7,    IGN,
  185 /*38*/   12,     26,      8,     35,      4,     43,     31,    IGN,
  186 /*40*/   58,    IGN,    IGN,    IGN,     14,    184,     66,     61,
  187 /*48*/  IGN,     56,    IGN,    IGN,    125,    112,     65,     62,
  188 /*50*/  IGN,    IGN,     29,    IGN,     68,     73,     64,     60,
  189 /*58*/  IGN,    IGN,    IGN,     42,     14,     67,     63,      1,
  190 };
  191 
  192 static const keysym_t mcr_jp_cmdmap[] = {
  193 /*      pos      command                normal          shifted         */
  194         KC(184), KS_Cmd,                KS_Alt_R,       KS_Multi_key,
  195         KC(73),  KS_Cmd_BrightnessUp,   KS_KP_Prior,    KS_KP_9,
  196         KC(81),  KS_Cmd_BrightnessDown, KS_KP_Next,     KS_KP_3,
  197         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  198         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  199         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  200 };
  201 
  202 /* IBM WorkPad z50 */
  203 static uint8_t z50_keytrans[] = {
  204 /*00    f1      f3      f5      f7      f9      -       -       f11     */
  205 /*08    f2      f4      f6      f8      f10     -       -       f12     */
  206 /*10    '       [       -       0       p       ;       up      /       */
  207 /*18    -       -       -       9       o       l       .       -       */
  208 /*20    left    ]       =       8       i       k       ,       -       */
  209 /*28    h       y       6       7       u       j       m       n       */
  210 /*30    -       bs      num     del     -       \       ent     sp      */
  211 /*38    g       t       5       4       r       f       v       b       */
  212 /*40    -       -       -       3       e       d       c       right   */
  213 /*48    -       -       -       2       w       s       x       down    */
  214 /*50    esc     tab     ~       1       q       a       z       -       */
  215 /*58    menu    Ls      Lc      Rc      La      Ra      Rs      -       */
  216 /*----------------------------------------------------------------------*/
  217 /*00*/   59,     61,     63,     65,     67,    IGN,    IGN,     87,
  218 /*08*/   60,     62,     64,     66,     68,    IGN,    IGN,     88,
  219 /*10*/   40,     26,     12,     11,     25,     39,    200,     53,
  220 /*18*/  IGN,    IGN,    IGN,     10,     24,     38,     52,    IGN,
  221 /*20*/  203,     27,     13,      9,     23,     37,     51,    IGN,
  222 /*28*/   35,     21,      7,      8,     22,     36,     50,     49,
  223 /*30*/  IGN,     14,     69,     14,    IGN,     43,     28,     57,
  224 /*38*/   34,     20,      6,      5,     19,     33,     47,     48,
  225 /*40*/  IGN,    IGN,    IGN,      4,     18,     32,     46,    205,
  226 /*48*/  IGN,    IGN,    IGN,      3,     17,     31,     45,    208,
  227 /*50*/    1,     15,     41,      2,     16,     30,     44,    IGN,
  228 /*58*/  221,     42,     29,     29,     56,     56,     54,    IGN,
  229 };
  230 
  231 /* Sharp Tripad PV6000 and VADEM CLIO */
  232 static uint8_t tripad_keytrans[] = {
  233 /*00    lsh     tab     `       q       esc     1       WIN     -       */
  234 /*08    ctrl    z       x       a       s       w       e       2       */
  235 /*10    lalt    sp      c       v       d       f       r       3       */
  236 /*18    b       n       g       h       t       y       4       5       */
  237 /*20    m       ,       j       k       u       i       6       7       */
  238 /*28    Fn      caps    l       o       p       8       9       0       */
  239 /*30    [       ]       la      .       /       ;       -       =       */
  240 /*38    rsh     ra      ua      da      '       ent     \       del     */
  241 /*40    -       -       -       -       -       -       -       -       */
  242 /*48    -       -       -       -       -       -       -       -       */
  243 /*50    -       -       -       -       -       -       -       -       */
  244 /*58    -       -       -       -       -       -       -       -       */
  245 /*----------------------------------------------------------------------*/
  246 /*00*/   42,     15,     41,     16,      1,      2,    104,    221,
  247 /*08*/   29,     44,     45,     30,     31,     17,     18,      3,
  248 /*10*/   56,     57,     46,     47,     32,     33,     19,      4,
  249 /*18*/   48,     49,     34,     35,     20,     21,      5,      6,
  250 /*20*/   50,     51,     36,     37,     22,     23,      7,      8,
  251 /*28*/  184,     58,     38,     24,     25,      9,     10,     11,
  252 /*30*/   26,     27,    203,     52,     53,     39,     12,     13,
  253 /*38*/   54,    205,    200,    208,     40,     28,     43,     14,
  254 /*40*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  255 /*48*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  256 /*50*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  257 /*58*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  258 };
  259 
  260 static const keysym_t tripad_cmdmap[] = {
  261 /*  pos      command            normal          shifted         fn    */
  262 KC(2),   KS_Cmd_Screen0,        KS_1,           KS_exclam,      KS_f1,
  263 KC(3),   KS_Cmd_Screen1,        KS_2,           KS_at,          KS_f2,
  264 KC(4),   KS_Cmd_Screen2,        KS_3,           KS_numbersign,  KS_f3,
  265 KC(5),   KS_Cmd_Screen3,        KS_4,           KS_dollar,      KS_f4,
  266 KC(6),   KS_Cmd_Screen4,        KS_5,           KS_percent,     KS_f5,
  267 KC(7),   KS_Cmd_Screen5,        KS_6,           KS_asciicircum, KS_f6,
  268 KC(8),   KS_Cmd_Screen6,        KS_7,           KS_ampersand,   KS_f7,
  269 KC(9),   KS_Cmd_Screen7,        KS_8,           KS_asterisk,    KS_f8,
  270 KC(10),  KS_Cmd_Screen8,        KS_9,           KS_parenleft,   KS_f9,
  271 KC(11),  KS_Cmd_Screen9,        KS_0,           KS_parenright,  KS_f10,
  272 KC(12),  KS_Cmd_BrightnessDown, KS_minus,       KS_underscore,  KS_f11,
  273 KC(13),  KS_Cmd_BrightnessUp,   KS_equal,       KS_plus,        KS_f12,
  274 KC(20),  KS_Cmd_BacklightToggle, KS_t,
  275 KC(33),  KS_Cmd_BacklightOff,   KS_f,
  276 KC(49),  KS_Cmd_BacklightOn,    KS_n,
  277 KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  278 KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  279 KC(184), KS_Mode_switch,        KS_Multi_key,
  280 KC(200), KS_Cmd_ScrollSlowUp,   KS_Up,          KS_Up,          KS_Prior,
  281 KC(203), KS_Cmd_ScrollFastUp,   KS_Left,        KS_Left,        KS_Home,
  282 KC(205), KS_Cmd_ScrollFastDown, KS_Right,       KS_Right,       KS_End,
  283 KC(208), KS_Cmd_ScrollSlowDown, KS_Down,        KS_Down,        KS_Next,
  284 };
  285 
  286 /* NEC Mobile Gear MCCS series */
  287 static uint8_t mccs_keytrans[] = {
  288 /*00    caps    cr      rar     p       .       y       b       z       */
  289 /*08    alt     [       dar     o       ,       t       v       a       */
  290 /*10    zen     @       lar     i       m       r       c       w       */
  291 /*18    lctrl   ;       uar     u       n       e       x       q       */
  292 /*20    lshft   bs      \       0       l       6       g       tab     */
  293 /*28    nconv   |       /       9       k       5       f       2       */
  294 /*30    conv    =       ]       8       j       4       d       1       */
  295 /*38    hira    -       '       7       h       3       s       esc     */
  296 /*40    -       sp      -       -       -       -       -       -       */
  297 /*48    -       -       -       -       -       -       -       -       */
  298 /*50    -       -       -       -       -       -       -       -       */
  299 /*58    -       -       -       -       -       -       -       -       */
  300 /*----------------------------------------------------------------------*/
  301 /*00*/   58,     28,    205,     25,     52,     21,     48,     44,
  302 /*08*/   56,     27,    208,     24,     51,     20,     47,     30,
  303 /*10*/   41,     26,    203,     23,     50,     19,     46,     17,
  304 /*18*/   29,     39,    200,     22,     49,     18,     45,     16,
  305 /*20*/   42,     14,    115,     11,     38,      7,     34,     15,
  306 /*28*/  123,    125,     53,     10,     37,      6,     33,      3,
  307 /*30*/  121,     13,     43,      9,     36,      5,     32,      2,
  308 /*38*/  112,     12,     40,      8,     35,      4,     31,      1,
  309 /*40*/  IGN,     57,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  310 /*48*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  311 /*50*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  312 /*58*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  313 };
  314 
  315 static const keysym_t mccs_cmdmap[] = {
  316 /*      pos      command                normal          shifted         */
  317         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  318         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  319         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  320 };
  321 
  322 static uint8_t mobilepro_keytrans[] = {
  323 /*00    space   ]       \       /       left    down    enter   l       */
  324 /*08    -       [       '       ;       right   up      .       o       */
  325 /*10    -       -       -       Windows v       c       x       z       */
  326 /*18    -       =       \-      `       f       d       s       a       */
  327 /*20    8       7       6       5       r       e       w       q       */
  328 /*28    ,       m       n       b       -       -       0       9       */
  329 /*30    k       j       h       g       4       3       2       1       */
  330 /*38    i       u       y       t       -       caps    del     esc     */
  331 /*40    alt_R   -       -       -       BS      p       TAB     Fn      */
  332 /*48    -       alt_L   -       -       pgdn    pgup    f10     f9      */
  333 /*50    -       -       ctrl    -       f8      f7      f6      f5      */
  334 /*58    -       -       -       shift   f4      f3      f2      f1      */
  335 /*----------------------------------------------------------------------*/
  336 /*00*/   57,     27,     43,     53,    203,    208,     28,     38,
  337 /*08*/  IGN,     26,     40,     39,    205,    200,     52,     24,
  338 /*10*/  IGN,    IGN,    IGN,    221,     47,     46,     45,     44,
  339 /*18*/  IGN,     13,     12,     41,     33,     32,     31,     30,
  340 /*20*/    9,      8,      7,      6,     19,     18,     17,     16,
  341 /*28*/   51,     50,     49,     48,    IGN,    IGN,     11,     10,
  342 /*30*/   37,     36,     35,     34,      5,      4,      3,      2,
  343 /*38*/   23,     22,     21,     20,    IGN,     58,     14,      1,
  344 /*40*/  184,    IGN,    IGN,    IGN,     14,     25,     15,    219,
  345 /*48*/  IGN,     56,    IGN,    IGN,     81,     73,     68,     67,
  346 /*50*/  IGN,    IGN,     29,    IGN,     66,     65,     64,     63,
  347 /*58*/  IGN,    IGN,    IGN,     42,     62,     61,     60,     59,
  348 };
  349 
  350 static const keysym_t mobilepro_cmdmap[] = {
  351 /*      pos      command                normal          shifted         */
  352         KC(219), KS_Cmd,                KS_Meta_L,      KS_Multi_key,
  353         KC(73),  KS_Cmd_BrightnessUp,   KS_KP_Prior,    KS_KP_9,
  354         KC(81),  KS_Cmd_BrightnessDown, KS_KP_Next,     KS_KP_3,
  355         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  356         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  357         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  358 };
  359 
  360 /* NEC MobilePro 750c by "Castor Fu" <castor@geocast.com> */
  361 static uint8_t mobilepro750c_keytrans[] = {
  362 /*00    right   \       p       .       y       b       z       space   */
  363 /*08    down    /       o       ,       t       v       a       -       */
  364 /*10    left    enter   i       m       r       c       w       Win     */
  365 /*18    num     ]       u       n       e       x       q       caps    */
  366 /*20    pgdn    -       0       l       :       g       tab     esc     */
  367 /*28    -       ;       9       k       5       f       2       `       */
  368 /*30    up      [       8       j       4       d       1       '       */
  369 /*38    -       @       7       h       3       s       del     -       */
  370 /*40    shift   -       -       -       bs      f12     f8      f4      */
  371 /*48    -       alt     -       -       |       f11     f7      f3      */
  372 /*50    -       -       ctrl    -       f10     f10     f6      f2      */
  373 /*58    -       -       -       shift   del     f9      f5      f1      */
  374 /*----------------------------------------------------------------------*/
  375 /*00*/  205,    43,     25,     52,     21,     48,     44,     57,
  376 /*08*/  208,    53,     24,     51,     20,     47,     30,     IGN,
  377 /*10*/  203,    28,     23,     50,     19,     46,     17,     221,
  378 /*18*/  69,     27,     22,     49,     18,     45,     16,     58,
  379 /*20*/  81,     IGN,    11,     38,     7,      34,     15,     1,
  380 /*28*/  IGN,    39,     10,     37,     6,      33,     3,      41,
  381 /*30*/  200,    26,     9,      36,     5,      32,     2,      40,
  382 /*38*/  12,     26,     8,      35,     4,      31,     83,     IGN,
  383 /*40*/  42,     IGN,    IGN,    IGN,    14,     88,     66,     62,
  384 /*48*/  IGN,    56,     IGN,    IGN,    125,    87,     65,     61,
  385 /*50*/  IGN,    IGN,    29,     IGN,    68,     68,     64,     60,
  386 /*58*/  IGN,    IGN,    IGN,    42,     13,     67,     63,     59,
  387 };
  388 
  389 /* NEC MobilePro 780 */
  390 static uint8_t mobilepro780_keytrans[] = {
  391 /*00    space   ]       \       /       left    right   enter   l       */
  392 /*08    -       [       '       ;       up      down    .       o       */
  393 /*10    -       -       -       Windows v       c       x       z       */
  394 /*18    -       =       \-      `       f       d       s       a       */
  395 /*20    8       7       6       5       r       e       w       q       */
  396 /*28    ,       m       n       b       -       -       0       9       */
  397 /*30    k       j       h       g       4       3       2       1       */
  398 /*38    i       u       y       t       -       caps    del     esc     */
  399 /*40    alt_R   -       -       -       BS      p       TAB     Fn      */
  400 /*48    -       alt_L   -       -       f12     f11     f10     f9      */
  401 /*50    -       -       ctrl    -       f8      f7      f6      f5      */
  402 /*58    -       -       -       shift   f4      f3      f2      f1      */
  403 /*----------------------------------------------------------------------*/
  404 /*00*/   57,     27,     43,     53,    203,    205,     28,     38,
  405 /*08*/  IGN,     26,     40,     39,    200,    208,     52,     24,
  406 /*10*/  IGN,    IGN,    IGN,    221,     47,     46,     45,     44,
  407 /*18*/  IGN,     13,     12,     41,     33,     32,     31,     30,
  408 /*20*/    9,      8,      7,      6,     19,     18,     17,     16,
  409 /*28*/   51,     50,     49,     48,    IGN,    IGN,     11,     10,
  410 /*30*/   37,     36,     35,     34,      5,      4,      3,      2,
  411 /*38*/   23,     22,     21,     20,    IGN,     58,     14,      1,
  412 /*40*/  184,    IGN,    IGN,    IGN,     14,     25,     15,    IGN,
  413 /*48*/  IGN,     56,    IGN,    IGN,     88,     87,     68,     67,
  414 /*50*/  IGN,    IGN,     29,    IGN,     66,     65,     64,     63,
  415 /*58*/  IGN,    IGN,    IGN,     42,     62,     61,     60,     59,
  416 };
  417 
  418 /* NEC MobilePro 8x0 */
  419 static uint8_t mobilepro8x0_keytrans[] = {
  420 /*00    space   ]       \       /       left    right   enter   l       */
  421 /*08    -       [       '       ;       up      down    .       o       */
  422 /*10    -       -       -       Windows v       c       x       z       */
  423 /*18    -       =       \-      `       f       d       s       a       */
  424 /*20    8       7       6       5       r       e       w       q       */
  425 /*28    ,       m       n       b       -       -       0       9       */
  426 /*30    k       j       h       g       4       3       2       1       */
  427 /*38    i       u       y       t       -       caps    del     esc     */
  428 /*40    alt_R   -       -       -       BS      p       TAB     Fn      */
  429 /*48    -       alt_L   -       -       pgdn    pgup    f10     f9      */
  430 /*50    -       -       ctrl    -       f8      f7      f6      f5      */
  431 /*58    -       -       -       shift   f4      f3      f2      f1      */
  432 /*----------------------------------------------------------------------*/
  433 /*00*/   57,     27,     43,     53,    203,    205,     28,     38,
  434 /*08*/  IGN,     26,     40,     39,    200,    208,     52,     24,
  435 /*10*/  IGN,    IGN,    IGN,    221,     47,     46,     45,     44,
  436 /*18*/  IGN,     13,     12,     41,     33,     32,     31,     30,
  437 /*20*/    9,      8,      7,      6,     19,     18,     17,     16,
  438 /*28*/   51,     50,     49,     48,    IGN,    IGN,     11,     10,
  439 /*30*/   37,     36,     35,     34,      5,      4,      3,      2,
  440 /*38*/   23,     22,     21,     20,    IGN,     58,     14,      1,
  441 /*40*/  184,    IGN,    IGN,    IGN,     14,     25,     15,    219,
  442 /*48*/  IGN,     56,    IGN,    IGN,     81,     73,     68,     67,
  443 /*50*/  IGN,    IGN,     29,    IGN,     66,     65,     64,     63,
  444 /*58*/  IGN,    IGN,    IGN,     42,     62,     61,     60,     59,
  445 };
  446 
  447 static const keysym_t mobilepro8x0_cmdmap[] = {
  448 /*      pos      command                normal          shifted         */
  449         KC(219), KS_Cmd,                KS_Meta_L,      KS_Multi_key,
  450         KC(73),  KS_Cmd_BrightnessUp,   KS_KP_Prior,    KS_KP_9,
  451         KC(81),  KS_Cmd_BrightnessDown, KS_KP_Next,     KS_KP_3,
  452         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  453         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  454         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  455 };
  456 
  457 /* FUJITSU INTERTOP CX300 */
  458 static uint8_t intertop_keytrans[] = {
  459 /*00    space   a2      1       tab     enter   caps    left    zenkaku */
  460 /*08    hiraga  a1      2       q       -       a       fnc     esc     */
  461 /*10    ins     w       3       s       del     ]       down    x       */
  462 /*18    z       e       4       d       a10     \       right   c       */
  463 /*20    backsla r       ;       f       a9      @       ^       v       */
  464 /*28    /       t       5       g       a8      p       -       b       */
  465 /*30    .       y       6       h       a7      l       0       n       */
  466 /*38    -       u       7       j       a5      o       bs      m       */
  467 /*40    -       a3      8       a4      -       i       k       ,       */
  468 /*48    num     :       9       [       a6      -       up      -       */
  469 /*50    -       -       -       -       shift_L -       -       shift_R */
  470 /*58    ctrl    win     muhenka henkan  alt     -       -       -       */
  471 /*----------------------------------------------------------------------*/
  472 /*00*/  57,     60,     2,      15,     28,     58,     205,    41,
  473 /*08*/  112,    59,     3,      16,     IGN,    30,     56,     1,
  474 /*10*/  210,    17,     4,      31,     83,     43,     208,    45,
  475 /*18*/  44,     18,     5,      32,     68,     125,    203,    46,
  476 /*20*/  115,    19,     39,     33,     67,     26,     13,     47,
  477 /*28*/  53,     20,     6,      34,     66,     25,     12,     48,
  478 /*30*/  52,     21,     7,      35,     65,     38,     11,     49,
  479 /*38*/  IGN,    22,     8,      36,     63,     24,     14,     50,
  480 /*40*/  IGN,    61,     9,      62,     IGN,    23,     37,     51,
  481 /*48*/  69,     40,     10,     27,     64,     IGN,    200,    IGN,
  482 /*50*/  IGN,    IGN,    IGN,    IGN,    42,     IGN,    IGN,    54,
  483 /*58*/  29,     221,    123,    121,    184,    IGN,    IGN,    IGN,
  484 };
  485 
  486 /* DoCoMo sigmarion (Japan) */
  487 static uint8_t sigmarion_jp_keytrans[] = {
  488 /*00    right   ent     p       .       y       b       z       space   */
  489 /*08    down    /       o       ,       t       v       a       nfer    */
  490 /*10    left    \       i       m       r       c       w       menu    */
  491 /*18    |       -       u       -       e       x       q       1       */
  492 /*20    pgdn    h/z     0       l       :       g       tab     f1      */
  493 /*28    xfer    ;       9       n       5       f       2       k       */
  494 /*30    up      [       8       j       4       d       6       -       */
  495 /*38    -       @       7       h       3       ]       s       -       */
  496 /*40    caps    -       -       -       bs      fnc     f8      f3      */
  497 /*48    -       alt     -       -       ^       k/h     f7      f4      */
  498 /*50    -       -       ctrl    -       f10     pgup    f6      f2      */
  499 /*58    -       -       -       shift   del     f9      f5      esc     */
  500 /*----------------------------------------------------------------------*/
  501 /*00*/  205,     28,     25,     52,     21,     48,     44,     57,
  502 /*08*/  208,     53,     24,     51,     20,     47,     30,    123,
  503 /*10*/  203,    115,     23,     50,     19,     46,     17,    221,
  504 /*18*/  125,    IGN,     22,    IGN,     18,     45,     16,      2,
  505 /*20*/   81,     41,     11,     38,     40,     34,     15,    IGN,
  506 /*28*/  121,     39,     10,     49,      6,     33,      3,     37,
  507 /*30*/  200,     27,      9,     36,      5,     32,      7,    IGN,
  508 /*38*/   12,     26,      8,     35,      4,     43,     31,    IGN,
  509 /*40*/   58,    IGN,    IGN,    IGN,     14,    184,     66,    IGN,
  510 /*48*/  IGN,     56,    IGN,    IGN,     13,    112,     65,    IGN,
  511 /*50*/  IGN,    IGN,     29,    IGN,     68,     73,     64,    IGN,
  512 /*58*/  IGN,    IGN,    IGN,     42,     14,     67,    IGN,      1,
  513 };
  514 
  515 static const keysym_t sigmarion_cmdmap[] = {
  516 /*      pos      command                normal          shifted         */
  517         KC(184), KS_Cmd,                KS_Alt_R,       KS_Multi_key,
  518         KC(64),  KS_Cmd_Screen0,        KS_f6,          KS_f1,
  519         KC(65),  KS_Cmd_Screen1,        KS_f7,          KS_f2,
  520         KC(66),  KS_Cmd_Screen2,        KS_f8,          KS_f3,
  521         KC(67),  KS_Cmd_Screen3,        KS_f9,          KS_f4,
  522         KC(68),  KS_Cmd_Screen4,        KS_f10,         KS_f5,
  523         KC(27),  KS_Cmd_BrightnessUp,   KS_bracketleft, KS_braceleft,
  524         KC(43),  KS_Cmd_BrightnessDown, KS_bracketright,KS_braceright,
  525         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  526         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  527         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  528 };
  529 
  530 /* NTT DoCoMo Pocket PostPet (Japan) */
  531 static uint8_t pocketpostpet_keytrans[] = {
  532 /*00    esc     1       q       a       ctrl    -       down    left    */
  533 /*08    tab     2       w       s       z       -       right   up      */
  534 /*10    pgup    3       e       d       x       shift   -       -       */
  535 /*18    pgdn    4       r       f       c       alt     -       -       */
  536 /*20    f5      5       t       g       v       nfer    -       -       */
  537 /*28    f6      6       y       h       b       -       -       -       */
  538 /*30    f7      7       u       j       n       space   -       -       */
  539 /*38    f8      8       i       k       m       -       -       -       */
  540 /*40    f9      9       o       l       ,       xfer    -       -       */
  541 /*48    f10     0       p       ;       .       -       -       -       */
  542 /*50    \|      minus   @       :       /       ent     -       -       */
  543 /*58    bs      ^       [       ]       \_      del     -       -       */
  544 /* MailCheck  -> tab    */
  545 /* Prev       -> pgup   */
  546 /* Next       -> pgdn   */
  547 /* tab        -> ctrl   */
  548 /* h/z        -> menu   */
  549 /* k/h        -> alt    */
  550 /* knj        -> nfer   */
  551 /* eng        -> xfer   */
  552 /*----------------------------------------------------------------------*/
  553 /*00*/  1,      2,      16,     30,     29,     UNK,    208,    203,
  554 /*08*/  15,     3,      17,     31,     44,     UNK,    205,    200,
  555 /*10*/  73,     4,      18,     32,     45,     42,     UNK,    UNK,
  556 /*08*/  81,     5,      19,     33,     46,     56,     UNK,    UNK,
  557 /*20*/  63,     6,      20,     34,     47,     123,    UNK,    UNK,
  558 /*28*/  64,     7,      21,     35,     48,     UNK,    UNK,    UNK,
  559 /*30*/  65,     8,      22,     36,     49,     57,     UNK,    UNK,
  560 /*38*/  66,     9,      23,     37,     50,     UNK,    UNK,    UNK,
  561 /*40*/  67,     10,     24,     38,     51,     121,    UNK,    UNK,
  562 /*48*/  68,     11,     25,     39,     52,     UNK,    UNK,    UNK,
  563 /*50*/  125,    12,     26,     40,     53,     28,     UNK,    UNK,
  564 /*58*/  14,     13,     27,     43,     115,    14,     UNK,    UNK,
  565 };
  566 #endif /* hpcmips */
  567 
  568 #ifdef hpcsh
  569 /*
  570  * HP Jornada 680/690
  571  */
  572 /* Japanese */
  573 const uint8_t jornada6x0_jp_keytrans[] = {
  574 /*      0    1    2    3    4    5    6    7 */
  575 /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK, /* ctrl 29 */
  576 /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK, /* shift L 42 */
  577 /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
  578 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 14 , 203,
  579 /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 115, UNK,
  580 /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, 121, UNK,
  581 /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 , /* alt 56 */
  582 /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 123,
  583 /* 8 */ IGN, 53 , 39 , 25 , 11 , 200, UNK, 208,
  584 /* 9 */ 112, 40 , 27 , 26 , 12 , 125, UNK, 205,
  585 /*10 */ 41 , 28 , 43 , 14 , 13 , 54 , UNK, UNK, /* shift R 54 */
  586 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  587 /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 221, UNK,
  588 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  589 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  590 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  591 };
  592 
  593 /* US/UK - Fn to the left of the space bar and missing few keys */
  594 const uint8_t jornada6x0_us_keytrans[] = {
  595 /*      0    1    2    3    4    5    6    7 */
  596 /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK,
  597 /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK,
  598 /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
  599 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
  600 /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 53 , UNK,
  601 /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, UNK, UNK,
  602 /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 ,
  603 /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 184,
  604 /* 8 */ 67 , UNK, 39 , 25 , 11 , 200, UNK, 208,
  605 /* 9 */ 68 , 40 , UNK, 43 , 12 , UNK, UNK, 205,
  606 /*10 */ 87 , 28 , UNK, 14 , 13 , 54 , UNK, UNK,
  607 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  608 /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 219, UNK,
  609 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  610 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  611 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  612 };
  613 
  614 /* International - AltGr to the right and extra keys in three middle rows */
  615 const uint8_t jornada6x0_intl_keytrans[] = {
  616 /*      0    1    2    3    4    5    6    7 */
  617 /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK,
  618 /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK,
  619 /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
  620 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
  621 /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 184, UNK,
  622 /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, UNK, UNK,
  623 /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 ,
  624 /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 41 ,
  625 /* 8 */ 67 , 53 , 39 , 25 , 11 , 200, UNK, 208,
  626 /* 9 */ 68 , 40 , 27 , 26 , 12 , UNK, UNK, 205,
  627 /*10 */ 87 , 28 , 43 , 14 , 13 , 54 , UNK, UNK,
  628 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  629 /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 219, UNK,
  630 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  631 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  632 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  633 };
  634 
  635 const int jornada6x0_special_keymap[] = {
  636         [KEY_SPECIAL_OFF]       = -1,
  637         [KEY_SPECIAL_LIGHT]     = -1
  638 };
  639 
  640 
  641 /*
  642  * HP 620LX
  643  */
  644 /* Japanese */
  645 const uint8_t hp620lx_jp_keytrans[] = {
  646 /*      0    1    2    3    4    5    6    7 */
  647 /* 0 */ 2  , 16 , 112, UNK, IGN, UNK, 42 , 30 , /* REC button */
  648 /* 1 */ 3  , 17 , 58 , 44 , UNK, 45 , 15 , 31 ,
  649 /* 2 */ 4  , 18 , UNK, 56 , 59 , 46 , 1  , 32 ,
  650 /* 3 */ 5  , 19 , UNK, UNK, 60 , 123, UNK, 33 ,
  651 /* 4 */ 6  , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
  652 /* 5 */ 7  , 21 , UNK, 121, 62 , 49 , UNK, 35 ,
  653 /* 6 */ 8  , 22 , UNK, 125, 63 , 50 , UNK, 36 ,
  654 /* 7 */ 9  , 23 , 52 , 115, 64 , 51 , UNK, 37 ,
  655 /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
  656 /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
  657 /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 41 , 43 ,
  658 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
  659 /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  660 /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  661 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  662 /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN  /* LED button */
  663 };
  664 
  665 /* Other models */
  666 const uint8_t hp620lx_intl_keytrans[] = {
  667 /*      0    1    2    3    4    5    6    7 */
  668 /* 0 */ 2  , 16 , 219, UNK, IGN, UNK, 42 , 30 , /* REC button */
  669 /* 1 */ 3  , 17 , 15 , 44 , UNK, 45 , 41 , 31 ,
  670 /* 2 */ 4  , 18 , UNK, 69 , 59 , 46 , 1  , 32 ,
  671 /* 3 */ 5  , 19 , UNK, UNK, 60 , 56 , UNK, 33 ,
  672 /* 4 */ 6  , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
  673 /* 5 */ 7  , 21 , UNK, UNK, 62 , 49 , UNK, 35 ,
  674 /* 6 */ 8  , 22 , UNK, 184, 63 , 50 , UNK, 36 ,
  675 /* 7 */ 9  , 23 , 52 , 211, 64 , 51 , UNK, 37 ,
  676 /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
  677 /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
  678 /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 54 , 43 ,
  679 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
  680 /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  681 /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  682 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  683 /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN  /* LED button */
  684 };
  685 
  686 const int hp620lx_special_keymap[] = {
  687         [KEY_SPECIAL_OFF]       = -1,   /* 88 */
  688         [KEY_SPECIAL_LIGHT]     = 120
  689 };
  690 
  691 
  692 /*
  693  * HITACHI PERSONA HPW50PAD
  694  */
  695 /* Japanese */
  696 const uint8_t persona_hpw50pad_jp_keytrans[] = {
  697 /*      0    1    2    3    4    5    6    7 */
  698 /* 0 */ 59 , 61 , 63 , 65 , 67 , SPL, UNK, UNK, /* ON button */
  699 /* 1 */ 29 , UNK, 47 , 48 , 121, UNK, UNK, UNK,
  700 /* 2 */  1 , UNK, 34 , 51 , 112, UNK, UNK, UNK,
  701 /* 3 */ 41 , 221, 35 , 37 , 52 , UNK, UNK, UNK,
  702 /* 4 */ 45 , 58 , 22 , 38 , 40 , 42 , UNK, UNK,
  703 /* 5 */ 30 , 16 , 21 , 24 , 28 , 54 , UNK, UNK,
  704 /* 6 */ 17 ,  4 , UNK, 10 , 12 , 205, UNK, UNK,
  705 /* 7 */ 31 , 18 ,  7 , 25 , 13 , 83 , UNK, UNK,
  706 /* 8 */ 60 , 62 , 64 , 66 , 68 , UNK, UNK, UNK,
  707 /* 9 */ UNK, 123, 49 , 53 , 203, UNK, UNK, UNK,
  708 /*10 */ 56 , 46 , 50 , 57 , 208, UNK, UNK, UNK,
  709 /*11 */ 15 , 33 , 36 , 39 , 43 , UNK, UNK, UNK,
  710 /*12 */ 44 , 20 , 23 , 26 , 27 , UNK, UNK, UNK,
  711 /*13 */  2 ,  6 ,  9 , 115, 200, UNK, UNK, UNK,
  712 /*14 */  3 ,  5 , UNK, UNK, 125, UNK, UNK, UNK,
  713 /*15 */ 32 , 19 ,  8 , 11 , 14 , UNK, UNK, UNK,
  714 };
  715 
  716 const int persona_hpw50pad_special_keymap[] = {
  717         [KEY_SPECIAL_OFF]       = 5,
  718         [KEY_SPECIAL_LIGHT]     = -1
  719 };
  720 
  721 static const keysym_t persona_hpw50pad_jp_keydesc[] = {
  722 /*      pos     command                 normal          shifted         */
  723         KC(63), KS_Cmd_ContrastDown,    KS_f5,
  724         KC(64), KS_Cmd_ContrastUp,      KS_f6,
  725         KC(65), KS_Cmd_BrightnessDown,  KS_f7,
  726         KC(66), KS_Cmd_BrightnessUp,    KS_f8,
  727 
  728         KC(200),KS_Cmd_ScrollFastUp,    KS_Up,
  729         KC(208),KS_Cmd_ScrollFastDown,  KS_Down,
  730         KC(203),KS_KP_Home,             KS_Left,
  731         KC(205),KS_KP_End,              KS_Right,
  732 };
  733 
  734 /*
  735  * HITACHI PERSONA HPW200EC
  736 */
  737 /* US */
  738 const uint8_t persona_hpw200ec_keytrans[] = {
  739 /*      0    1    2    3    4    5    6    7 */
  740 /* 0 */  3 ,  2 , 71 , 69 , 67 , SPL, UNK, UNK,
  741 /* 1 */ 11 , UNK, 79 , 77 , 75 , UNK, UNK, UNK,
  742 /* 2 */ 19 , UNK, UNK, 85 , 83 , UNK, UNK, UNK,
  743 /* 3 */ 27 , 26 , 95 , 93 , 91 , UNK, UNK, UNK,
  744 /* 4 */ 35 , 34 , 103, 101, 99 , 32 , UNK, UNK,
  745 /* 5 */ 43 , 42 , 111, 109, 107, 40 , UNK, UNK,
  746 /* 6 */ 51 , 50 , 119, 117, 115, 48 , UNK, UNK,
  747 /* 7 */ 59 , 58 , UNK, UNK, 123, 56 , UNK, UNK,
  748 /* 8 */  5 ,  6 , 70 , 68 , 66 , UNK, UNK, UNK,
  749 /* 9 */ UNK, UNK, 78 , 76 , 74 , UNK, UNK, UNK,
  750 /*10 */ 21 , UNK, UNK, 84 , 82 , UNK, UNK, UNK,
  751 /*11 */ 29 , 30 , 94 , 92 , 90 , UNK, UNK, UNK,
  752 /*12 */ UNK, 26 , 102, 100, 98 , UNK, UNK, UNK,
  753 /*13 */ UNK, 46 , 110, 108, 106, 104, UNK, UNK,
  754 /*14 */ 53 , 54 , 118, 124, 114, UNK, UNK, UNK,
  755 /*15 */ 61 , 62 , 126, UNK, 122, UNK, UNK, UNK,
  756 };
  757 
  758 const int persona_hpw200ec_special_keymap[] = {
  759         [KEY_SPECIAL_OFF]       = 5,
  760         [KEY_SPECIAL_LIGHT]     = -1
  761 };
  762 
  763 #endif /* hpcsh */
  764 
  765 #ifdef hpcarm
  766 /*
  767  * HP Jornada 710/720/728
  768  */
  769 
  770 /* Japanese */
  771 const uint8_t jornada7xx_jp_keytrans[] = {
  772 /* 00 */ UNK,  1 , 59 , 60 , 61 , 62 , 63 , 64 ,
  773 /* 08 */ 65 , 66 , 67 , 112, 41 , IGN, IGN, IGN,
  774 /* 10 */ UNK,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,
  775 /* 18 */  9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
  776 /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
  777 /* 28 */  23, 24 , 25 , 26 , UNK, UNK, UNK, UNK,
  778 /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
  779 /* 38 */  37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
  780 /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
  781 /* 48 */  51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
  782 /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
  783 /* 58 */ UNK, UNK, 200, 125, 54 , UNK, UNK, UNK,
  784 /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 123, UNK,
  785 /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
  786 /* 70 */ UNK, 184, 29 , UNK, 57 , UNK, UNK, 121,
  787 /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
  788 };
  789 
  790 /* US/UK - Fn to the left of the space bar and missing few keys */
  791 const uint8_t jornada7xx_us_keytrans[] = {
  792 /* 00 */ UNK,  1 , 59 , 60 , 61 , 62 , 63 , 64 ,
  793 /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN,
  794 /* 10 */ UNK,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,
  795 /* 18 */  9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
  796 /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
  797 /* 28 */  23, 24 , 25 , 43 , 14 , UNK, UNK, UNK,
  798 /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
  799 /* 38 */  37, 38 , 39 , 40 , UNK, UNK, UNK, UNK,
  800 /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
  801 /* 48 */  51, 52 , UNK, 40 , 28 , UNK, UNK, UNK,
  802 /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
  803 /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
  804 /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 184, UNK,
  805 /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
  806 /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK,
  807 /* 78 */ 53 , 14 , UNK, UNK, UNK, UNK, UNK, SPL,
  808 };
  809 
  810 /* International - AltGr to the right and extra keys in three middle rows */
  811 const uint8_t jornada7xx_intl_keytrans[] = {
  812 /* 00 */ UNK,  1 , 59 , 60 , 61 , 62 , 63 , 64 ,
  813 /* 08 */ 65 , 66 , 67 , 68 , 87 , IGN, IGN, IGN,
  814 /* 10 */ UNK,  2 ,  3 ,  4 ,  5 ,  6 ,  7 ,  8 ,
  815 /* 18 */  9 , 10 , 11 , 12 , 13 , UNK, UNK, UNK,
  816 /* 20 */ UNK, 16 , 17 , 18 , 19 , 20 , 21 , 22 ,
  817 /* 28 */  23, 24 , 25 , 26 , 14 , UNK, UNK, UNK,
  818 /* 30 */ UNK, 30 , 31 , 32 , 33 , 34 , 35 , 36 ,
  819 /* 38 */  37, 38 , 39 , 27 , 43 , UNK, UNK, UNK,
  820 /* 40 */ UNK, 44 , 45 , 46 , 47 , 48 , 49 , 50 ,
  821 /* 48 */  51, 52 , 53 , 40 , 28 , UNK, UNK, UNK,
  822 /* 50 */ UNK, 15 , UNK, 42 , UNK, UNK, UNK, UNK,
  823 /* 58 */ UNK, UNK, 200, UNK, 54 , UNK, UNK, UNK,
  824 /* 60 */ UNK, UNK, UNK, UNK, UNK, 56 , 41 , UNK,
  825 /* 68 */ UNK, 203, 208, 205, UNK, UNK, UNK, UNK,
  826 /* 70 */ UNK, 221, 29 , UNK, 57 , UNK, UNK, UNK,
  827 /* 78 */ 184, 211, UNK, UNK, UNK, UNK, UNK, SPL,
  828 };
  829 
  830 const int jornada7xx_special_keymap[] = {
  831         [KEY_SPECIAL_OFF]       = 127,
  832         [KEY_SPECIAL_LIGHT]     = -1
  833 };
  834 #endif /* hpcarm */
  835 
  836 #if defined(hpcarm) || defined(hpcsh)
  837 /*
  838  * Shared keymaps between the Jornada series (6xx, 7xx).
  839  */
  840 
  841 /* US (ABA), UK (ABU) */
  842 static const keysym_t jornada_us_keydesc[] = {
  843 /*  pos      normal          shifted        altgr       */
  844     KC(2),   KS_1,           KS_exclam,     KS_asciitilde,
  845     KC(3),   KS_2,           KS_at,         KS_grave,
  846     KC(4),   KS_3,           KS_numbersign, KS_sterling,
  847 #ifdef KS_euro
  848     KC(5),   KS_4,           KS_dollar,     KS_euro,
  849 #endif
  850     KC(25),  KS_p,           KS_P,          KS_braceleft,
  851     KC(39),  KS_semicolon,   KS_colon,      KS_bracketleft,
  852     KC(40),  KS_apostrophe,  KS_quotedbl,   KS_bracketright,
  853     KC(43),  KS_backslash,   KS_bar,        KS_braceright,
  854     KC(184), KS_Mode_switch, KS_Multi_key,
  855 
  856     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  857     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  858     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  859     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  860 };
  861 
  862 /*
  863  * XXX: Add AltGr layer for #ABB here?  OTOH, all the keys necessary
  864  * for basic actions in DDB or shell are on the primary layer, so it
  865  * makes sense to support AltGr via wsconsctl(8) instead, as the same
  866  * primary layer is used e.g. in Russian models.  But it does make
  867  * sense to define the <AltGr> key itself here, as we base this layout
  868  * on KB_US that defines it as the right <Alt>.
  869  */
  870 /* European English (ABB) */
  871 static const keysym_t jornada_intl_keydesc[] = {
  872 /*  pos      normal          shifted        altgr       */
  873     KC(42),  KS_Shift_L,     KS_Shift_L,    KS_Caps_Lock,
  874     KC(184), KS_Mode_switch, KS_Multi_key,
  875 
  876     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  877     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  878     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  879     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  880 };
  881 
  882 /* German (ABD) */
  883 static const keysym_t jornada_de_keydesc[] = {
  884 /*  pos      normal          shifted        altgr       */
  885     KC(2),   KS_1,           KS_exclam,     KS_brokenbar,
  886     KC(5),   KS_4,           KS_dollar,     KS_ccedilla,
  887     KC(6),   KS_5,           KS_percent,    KS_sterling,
  888     KC(7),   KS_6,           KS_ampersand,  KS_notsign,
  889 #ifdef KS_euro
  890     KC(18),  KS_e,           KS_E,          KS_euro,
  891 #endif
  892     KC(27),  KS_plus,        KS_asterisk,   KS_asciitilde, /* NB: not dead */
  893     KC(30),  KS_a,           KS_A,          KS_bar,
  894     KC(41),  KS_asciicircum, KS_degree,                    /* NB: not dead */
  895     KC(43),  KS_numbersign,  KS_apostrophe, KS_dead_diaeresis,
  896     KC(44),  KS_y,           KS_Y,          KS_less,
  897     KC(45),  KS_x,           KS_X,          KS_greater,
  898     KC(46),  KS_c,           KS_C,          KS_cent,
  899 
  900     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  901     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  902     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  903     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  904 };
  905 
  906 /* French (ABF) */
  907 static const keysym_t jornada_fr_keydesc[] = {
  908 /*  pos      normal          shifted        altgr       */
  909     KC(2),   KS_ampersand,   KS_1,          KS_plusminus,
  910 #ifdef KS_euro
  911     KC(18),  KS_e,           KS_E,          KS_euro,
  912 #endif
  913     KC(19),  KS_r,           KS_R,          KS_onequarter,
  914     KC(20),  KS_t,           KS_T,          KS_onehalf,
  915     KC(21),  KS_y,           KS_Y,          KS_threequarters,
  916     KC(25),  KS_p,           KS_P,          KS_paragraph,
  917     KC(30),  KS_q,           KS_Q,          KS_brokenbar,
  918     KC(31),  KS_s,           KS_S,          KS_guillemotleft,
  919     KC(32),  KS_d,           KS_D,          KS_guillemotright,
  920     KC(40),  KS_ugrave,      KS_percent,    KS_dead_acute,
  921     KC(41),  KS_twosuperior, KS_voidSymbol, KS_threesuperior,
  922     KC(43),  KS_asterisk,    KS_mu,         KS_notsign,
  923     KC(44),  KS_w,           KS_W,          KS_less,
  924     KC(45),  KS_x,           KS_X,          KS_greater,
  925     KC(46),  KS_c,           KS_C,          KS_cent,
  926     KC(50),  KS_comma,       KS_question,   KS_mu,
  927     KC(53),  KS_exclam,      KS_section,    KS_Eacute,
  928     KC(184), KS_Mode_switch, KS_Multi_key,
  929 
  930     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  931     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  932     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  933     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  934 };
  935 
  936 /* Scandinavian */
  937 static const keysym_t jornada_scnv_keydesc[] = {
  938 /*  pos      normal          shifted        altgr       */
  939     KC(2),   KS_1,           KS_exclam,     KS_asciitilde,
  940     KC(3),   KS_2,           KS_quotedbl,   KS_at,
  941     KC(4),   KS_3,           KS_numbersign, KS_sterling,
  942     KC(5),   KS_4,           KS_currency,   KS_dollar,
  943     KC(7),   KS_6,           KS_ampersand,
  944     KC(8),   KS_7,           KS_slash,      KS_braceleft,
  945     KC(9),   KS_8,           KS_parenleft,  KS_bracketleft,
  946     KC(10),  KS_9,           KS_parenright, KS_bracketright,
  947     KC(11),  KS_0,           KS_equal,      KS_braceright,
  948     KC(12),  KS_plus,        KS_question,   KS_backslash,
  949     KC(13),  KS_apostrophe,  KS_grave,
  950     KC(25),  KS_p,           KS_P,          KS_braceleft,
  951     KC(26),  KS_aring,
  952     /*
  953      * XXX: KC(39) and KC(40) has odiaeresis/adiaeresis *and*
  954      * oslash/ae on them.  Apparently localized WinCE uses the former
  955      * for Swedish and Finnish and the latter for Danish and
  956      * Norwegian.  But as the keyboard doesn't seem to have
  957      * semicolon/colon and minus/underscore nowhere on the primary and
  958      * altgr layers, I put them here (semicolon/colon is inherited).
  959      */
  960     KC(40),  KS_minus,       KS_underscore, /* XXX */
  961     KC(41),  KS_paragraph,   KS_onehalf,    KS_bar,
  962     KC(184), KS_Mode_switch, KS_Multi_key,
  963 
  964     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  965     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  966     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  967     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  968 };
  969 
  970 /* Spanish (ABE) */
  971 static const keysym_t jornada_es_keydesc[] = {
  972 /*  pos      normal          shifted        altgr            */
  973     KC(2),   KS_1,           KS_exclam,     KS_ordfeminine,
  974     KC(3),   KS_2,           KS_quotedbl,   KS_masculine,
  975     KC(4),   KS_3,           KS_numbersign,
  976     KC(12),  KS_apostrophe,  KS_question,   KS_backslash,
  977     KC(13),  KS_questiondown,KS_exclamdown,
  978     KC(16),  KS_q,           KS_Q,          KS_at,
  979 #ifdef KS_euro
  980     KC(18),  KS_e,           KS_E,          KS_euro,
  981 #endif
  982     KC(26),  KS_dead_acute,  KS_dead_diaeresis,
  983     KC(27),  KS_plus,        KS_asterisk,   KS_dead_tilde,
  984     KC(40),  KS_braceleft,   KS_bracketleft,KS_dead_circumflex,
  985     KC(41),  KS_bar,         KS_degree,     KS_notsign,
  986     KC(43),  KS_braceright,  KS_bracketright,KS_dead_grave,
  987     KC(44),  KS_z,           KS_Z,          KS_less,
  988     KC(45),  KS_x,           KS_X,          KS_greater,
  989     KC(46),  KS_c,           KS_C,          KS_Ccedilla,
  990 
  991     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  992     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  993     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  994     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  995 };
  996 #endif /* hpcarm || hpcsh */
  997 
  998 /*
  999  * REMINDER:
 1000  *   When adding new entry to this array, make sure that pckbd_keydesctab[]
 1001  *   in sys/dev/pckbport/wskbdmap_mfii.c has a placeholder KB_MACHDEP entry
 1002  *   for the base ht_layout that you refer.
 1003  */
 1004 const struct hpckbd_keymap_table {
 1005         platid_t        *ht_platform;
 1006         const uint8_t   *ht_keymap;
 1007         const int       *ht_special;
 1008         struct {
 1009                 const keysym_t  *map;
 1010                 int size;
 1011         } ht_cmdmap;
 1012         kbd_t           ht_layout;
 1013 } hpckbd_keymap_table[] = {
 1014 #ifdef hpcmips
 1015         {       &platid_mask_MACH_COMPAQ_C,
 1016                 tc5165_compaq_c_jp_keymap,
 1017                 tc5165_compaq_c_jp_special_keymap,
 1018                 NULLCMDMAP,
 1019                 KB_JP },
 1020         {       &platid_mask_MACH_VICTOR_INTERLINK,
 1021                 m38813c_keymap,
 1022                 default_special_keymap,
 1023                 NULLCMDMAP,
 1024                 KB_JP },
 1025         {       &platid_mask_MACH_SHARP_TELIOS,
 1026                 tc5165_telios_jp_keymap,
 1027                 default_special_keymap,
 1028                 CMDMAP(tc5165_telios_jp_cmdmap),
 1029                 KB_JP },
 1030         {       &platid_mask_MACH_SHARP_MOBILON,
 1031                 tc5165_mobilon_keymap,
 1032                 tc5165_mobilon_special_keymap,
 1033                 NULLCMDMAP,
 1034                 KB_US },
 1035         {       &platid_mask_MACH_NEC_MCR_500A,
 1036                 mobilepro750c_keytrans,
 1037                 NULL,
 1038                 NULLCMDMAP,
 1039                 KB_US },
 1040         {       &platid_mask_MACH_NEC_MCR_520A,
 1041                 mobilepro_keytrans,
 1042                 NULL,
 1043                 CMDMAP(mobilepro_cmdmap),
 1044                 KB_US },
 1045         {       &platid_mask_MACH_NEC_MCR_530A,
 1046                 mobilepro780_keytrans,
 1047                 NULL,
 1048                 NULLCMDMAP,
 1049                 KB_US },
 1050         {       &platid_mask_MACH_NEC_MCR_700A,
 1051                 mobilepro8x0_keytrans,
 1052                 NULL,
 1053                 CMDMAP(mobilepro8x0_cmdmap),
 1054                 KB_US },
 1055         {       &platid_mask_MACH_NEC_MCR_730A,
 1056                 mobilepro8x0_keytrans,
 1057                 NULL,
 1058                 CMDMAP(mobilepro8x0_cmdmap),
 1059                 KB_US },
 1060         {       &platid_mask_MACH_NEC_MCR_MPRO700,
 1061                 mobilepro_keytrans,
 1062                 NULL,
 1063                 NULLCMDMAP,
 1064                 KB_US },
 1065         {       &platid_mask_MACH_NEC_MCR_SIGMARION,
 1066                 sigmarion_jp_keytrans,
 1067                 NULL,
 1068                 CMDMAP(sigmarion_cmdmap),
 1069                 KB_JP },
 1070         {       &platid_mask_MACH_NEC_MCR_SIGMARION2,
 1071                 sigmarion_jp_keytrans,
 1072                 NULL,
 1073                 CMDMAP(sigmarion_cmdmap),
 1074                 KB_JP },
 1075         {       &platid_mask_MACH_NEC_MCR,
 1076                 mcr_jp_keytrans,
 1077                 NULL,
 1078                 CMDMAP(mcr_jp_cmdmap),
 1079                 KB_JP },
 1080         {       &platid_mask_MACH_IBM_WORKPAD_Z50,
 1081                 z50_keytrans,
 1082                 NULL,
 1083                 NULLCMDMAP,
 1084                 KB_US },
 1085         {       &platid_mask_MACH_SHARP_TRIPAD,
 1086                 tripad_keytrans,
 1087                 NULL,
 1088                 CMDMAP(tripad_cmdmap),
 1089                 KB_US },
 1090         {       &platid_mask_MACH_VADEM_CLIO_C,
 1091                 tripad_keytrans,
 1092                 NULL,
 1093                 CMDMAP(tripad_cmdmap),
 1094                 KB_US },
 1095         {       &platid_mask_MACH_NEC_MCCS,
 1096                 mccs_keytrans,
 1097                 NULL,
 1098                 CMDMAP(mccs_cmdmap),
 1099                 KB_JP },
 1100         {       &platid_mask_MACH_FUJITSU_INTERTOP,
 1101                 intertop_keytrans,
 1102                 NULL,
 1103                 NULLCMDMAP,
 1104                 KB_JP },
 1105         {       &platid_mask_MACH_CASIO_POCKETPOSTPET,
 1106                 pocketpostpet_keytrans,
 1107                 NULL,
 1108                 NULLCMDMAP,
 1109                 KB_JP },
 1110 #endif /* hpcmips */
 1111 #ifdef hpcsh
 1112         /*
 1113          * HP Jornada 680/690
 1114          */
 1115         /* Japanese */
 1116         {       &platid_mask_MACH_HP_JORNADA_680JP,
 1117                 jornada6x0_jp_keytrans,
 1118                 jornada6x0_special_keymap,
 1119                 NULLCMDMAP,
 1120                 KB_JP },
 1121         {       &platid_mask_MACH_HP_JORNADA_690JP,
 1122                 jornada6x0_jp_keytrans,
 1123                 jornada6x0_special_keymap,
 1124                 NULLCMDMAP,
 1125                 KB_JP },
 1126         /* US (ABA), UK (ABU) */
 1127         {       &platid_mask_MACH_HP_JORNADA_680,
 1128                 jornada6x0_us_keytrans,
 1129                 jornada6x0_special_keymap,
 1130                 CMDMAP(jornada_us_keydesc),
 1131                 KB_US },
 1132         {       &platid_mask_MACH_HP_JORNADA_690,
 1133                 jornada6x0_us_keytrans,
 1134                 jornada6x0_special_keymap,
 1135                 CMDMAP(jornada_us_keydesc),
 1136                 KB_US },
 1137         /* European English (ABB) */
 1138         {       &platid_mask_MACH_HP_JORNADA_680EU,
 1139                 jornada6x0_intl_keytrans,
 1140                 jornada6x0_special_keymap,
 1141                 CMDMAP(jornada_intl_keydesc),
 1142                 KB_US },
 1143         {       &platid_mask_MACH_HP_JORNADA_690EU,
 1144                 jornada6x0_intl_keytrans,
 1145                 jornada6x0_special_keymap,
 1146                 CMDMAP(jornada_intl_keydesc),
 1147                 KB_US },
 1148         /* German (ABD) */
 1149         {       &platid_mask_MACH_HP_JORNADA_680DE,
 1150                 jornada6x0_intl_keytrans,
 1151                 jornada6x0_special_keymap,
 1152                 CMDMAP(jornada_de_keydesc),
 1153                 KB_DE },
 1154         {       &platid_mask_MACH_HP_JORNADA_690DE,
 1155                 jornada6x0_intl_keytrans,
 1156                 jornada6x0_special_keymap,
 1157                 CMDMAP(jornada_de_keydesc),
 1158                 KB_DE },
 1159         /* French (ABF) */
 1160         {       &platid_mask_MACH_HP_JORNADA_680FR,
 1161                 jornada6x0_intl_keytrans,
 1162                 jornada6x0_special_keymap,
 1163                 CMDMAP(jornada_fr_keydesc),
 1164                 KB_FR },
 1165         {       &platid_mask_MACH_HP_JORNADA_690FR,
 1166                 jornada6x0_intl_keytrans,
 1167                 jornada6x0_special_keymap,
 1168                 CMDMAP(jornada_fr_keydesc),
 1169                 KB_FR },
 1170         /* Scandinavian */
 1171         {       &platid_mask_MACH_HP_JORNADA_680SV,
 1172                 jornada6x0_intl_keytrans,
 1173                 jornada6x0_special_keymap,
 1174                 CMDMAP(jornada_scnv_keydesc),
 1175                 KB_US },
 1176         {       &platid_mask_MACH_HP_JORNADA_690SV,
 1177                 jornada6x0_intl_keytrans,
 1178                 jornada6x0_special_keymap,
 1179                 CMDMAP(jornada_scnv_keydesc),
 1180                 KB_US },
 1181         /* Spanish (ABE) */
 1182         {       &platid_mask_MACH_HP_JORNADA_680ES,
 1183                 jornada6x0_intl_keytrans,
 1184                 jornada6x0_special_keymap,
 1185                 CMDMAP(jornada_es_keydesc),
 1186                 KB_ES },
 1187         {       &platid_mask_MACH_HP_JORNADA_690ES,
 1188                 jornada6x0_intl_keytrans,
 1189                 jornada6x0_special_keymap,
 1190                 CMDMAP(jornada_es_keydesc),
 1191                 KB_ES },
 1192         /*
 1193          * HP 620LX
 1194          */
 1195         /* Japanese */
 1196         {       &platid_mask_MACH_HP_LX_620JP,
 1197                 hp620lx_jp_keytrans,
 1198                 hp620lx_special_keymap,
 1199                 NULLCMDMAP,
 1200                 KB_JP },
 1201         /* Other models */
 1202         {       &platid_mask_MACH_HP_LX_620,
 1203                 hp620lx_intl_keytrans,
 1204                 hp620lx_special_keymap,
 1205                 NULLCMDMAP,
 1206                 KB_US },
 1207 
 1208         /*
 1209          * PERSONA HPW50PAD
 1210          */
 1211         /* Japanese */
 1212         {       &platid_mask_MACH_HITACHI_PERSONA_HPW50PAD,
 1213                 persona_hpw50pad_jp_keytrans,
 1214                 persona_hpw50pad_special_keymap,
 1215                 CMDMAP(persona_hpw50pad_jp_keydesc),
 1216                 KB_JP },
 1217 
 1218         /*
 1219          * PERSONA HPW200EC
 1220          */
 1221         /* US */
 1222         {       &platid_mask_MACH_HITACHI_PERSONA_HPW200EC,
 1223                 persona_hpw200ec_keytrans,
 1224                 persona_hpw200ec_special_keymap,
 1225                 NULLCMDMAP,
 1226                 KB_US },
 1227 
 1228 #endif /* hpcsh */
 1229 #ifdef hpcarm
 1230         /* US (ABA), UK (ABU) */
 1231         {       &platid_mask_MACH_HP_JORNADA_720,
 1232                 jornada7xx_us_keytrans,
 1233                 jornada7xx_special_keymap,
 1234                 CMDMAP(jornada_us_keydesc),
 1235                 KB_US },
 1236         /* Japanese */
 1237         {       &platid_mask_MACH_HP_JORNADA_720JP,
 1238                 jornada7xx_jp_keytrans,
 1239                 jornada7xx_special_keymap,
 1240                 NULLCMDMAP,
 1241                 KB_JP },
 1242         /* European English (ABB) */
 1243         {       &platid_mask_MACH_HP_JORNADA_720EU,
 1244                 jornada7xx_intl_keytrans,
 1245                 jornada7xx_special_keymap,
 1246                 CMDMAP(jornada_intl_keydesc),
 1247                 KB_US },
 1248         /* German (ABD) */
 1249         {       &platid_mask_MACH_HP_JORNADA_720DE,
 1250                 jornada7xx_intl_keytrans,
 1251                 jornada7xx_special_keymap,
 1252                 CMDMAP(jornada_de_keydesc),
 1253                 KB_DE },
 1254         /* French (ABF) */
 1255         {       &platid_mask_MACH_HP_JORNADA_720FR,
 1256                 jornada7xx_intl_keytrans,
 1257                 jornada7xx_special_keymap,
 1258                 CMDMAP(jornada_fr_keydesc),
 1259                 KB_FR },
 1260         /* Scandinavian */
 1261         {       &platid_mask_MACH_HP_JORNADA_720SV,
 1262                 jornada7xx_intl_keytrans,
 1263                 jornada7xx_special_keymap,
 1264                 CMDMAP(jornada_scnv_keydesc),
 1265                 KB_US },
 1266         /* Spanish (ABE) */
 1267         {       &platid_mask_MACH_HP_JORNADA_720ES,
 1268                 jornada7xx_intl_keytrans,
 1269                 jornada7xx_special_keymap,
 1270                 CMDMAP(jornada_es_keydesc),
 1271                 KB_ES },
 1272 #endif /* hpcarm */
 1273 
 1274         { .ht_platform = NULL } /* end mark */
 1275 };

Cache object: 6fd04927be7c2b0249b0dfa793c0e13f


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.