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.26.2.1 2004/04/07 04:38:42 jmc 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  * 3. All advertising materials mentioning features or use of this software
   16  *    must display the following acknowledgement:
   17  *        This product includes software developed by the NetBSD
   18  *        Foundation, Inc. and its contributors.
   19  * 4. Neither the name of The NetBSD Foundation nor the names of its
   20  *    contributors may be used to endorse or promote products derived
   21  *    from this software without specific prior written permission.
   22  *
   23  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   24  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   25  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   26  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   27  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   28  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   29  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   30  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   31  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   32  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   33  * POSSIBILITY OF SUCH DAMAGE.
   34  */
   35 
   36 #define UNK             255     /* unknown */
   37 #define IGN             254     /* ignore */
   38 #define SPL             253     /* special key */
   39 #define KC(n)           KS_KEYCODE(n)
   40 #define CMDMAP(map)     { map, (sizeof(map)/sizeof(keysym_t)) }
   41 #define NULLCMDMAP      { NULL, 0 }
   42 
   43 #define KEY_SPECIAL_OFF         0
   44 #define KEY_SPECIAL_LIGHT       1
   45 
   46 const u_int8_t default_keymap[] = {
   47 /*      0    1    2    3    4    5    6    7 */       
   48 /* 0 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   49 /* 1 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   50 /* 2 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   51 /* 3 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   52 /* 4 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   53 /* 5 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   54 /* 6 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   55 /* 7 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   56 /* 8 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   57 /* 9 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   58 /*10 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   59 /*11 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   60 /*12 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   61 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   62 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
   63 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK
   64 };
   65 
   66 const int default_special_keymap[] = {
   67         [KEY_SPECIAL_OFF]       = -1,
   68         [KEY_SPECIAL_LIGHT]     = -1
   69 };
   70 
   71 #ifdef hpcmips
   72 const u_int8_t tc5165_mobilon_keymap[] = {
   73 /*      0    1    2    3    4    5    6    7 */       
   74 /* 0 */ 37 , 45 , 44 , UNK, 9  , 51 , 23 , UNK,
   75 /* 1 */ UNK, 56 , UNK, UNK, UNK, UNK, UNK, UNK,
   76 /* 2 */ UNK, UNK, 29 , UNK, UNK, UNK, UNK, UNK,
   77 /* 3 */ 24 , 203, UNK, 38 , 10 , 27 , 13 , UNK,
   78 /* 4 */ 40 , UNK, UNK, 39 , 26 , 53 , 11 , 12 ,
   79 /* 5 */ UNK, UNK, UNK, 53 , 25 , UNK, UNK, SPL, /* Light */
   80 /* 6 */ 208, UNK, UNK, UNK, 52 , UNK, 43 , 14 ,
   81 /* 7 */ 205, 200, UNK, UNK, SPL, UNK, UNK, 28 , /* Off key */
   82 /* 8 */ UNK, 41 , 59 , 15 , 2  , UNK, UNK, UNK,
   83 /* 9 */ 63 , 64 , 1  , UNK, 65 , 16 , 17 , UNK,
   84 /*10 */ 60 , UNK, 61 , 62 , 3  , UNK, UNK, UNK,
   85 /*11 */ UNK, UNK, UNK, 42 , 58 , UNK, UNK, UNK,
   86 /*12 */ 47 , 33 , 46 , 5  , 4  , 18 , 19 , UNK,
   87 /*13 */ 34 , 35 , 20 , 48 , 6  , 7  , 21 , 49 ,
   88 /*14 */ 22 , 31 , 32 , 36 , 8  , 30 , 50 , 57 ,
   89 /*15 */ UNK, IGN, UNK, UNK, UNK, UNK, UNK, UNK /* Windows key */
   90 };
   91 
   92 const int tc5165_mobilon_special_keymap[] = {
   93         [KEY_SPECIAL_OFF]       = 60,
   94         [KEY_SPECIAL_LIGHT]     = 47
   95 };
   96 
   97 const u_int8_t tc5165_telios_jp_keymap[] = {
   98 /*      0    1    2    3    4    5    6    7 */       
   99 /* 0 */ 58,  15,  IGN, 1,   IGN, IGN, IGN, IGN,
  100 /* 1 */ IGN, IGN, IGN, IGN, 54,  42,  IGN, IGN,
  101 /* 2 */ 31,  18,  4,   IGN, IGN, 32,  45,  59,
  102 /* 3 */ 33,  19,  5,   61,  IGN, 46,  123, 60,
  103 /* 4 */ 35,  21,  8,   64,  IGN, 48,  49,  63,
  104 /* 5 */ 17,  16,  3,   IGN, 2,   30,  44,  41,
  105 /* 6 */ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  106 /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, 56,  IGN,
  107 /* 8 */ 34,  20,  7,   IGN, 6,   47,  57,  62,
  108 /* 9 */ IGN, IGN, IGN, IGN, IGN, IGN, 29,  IGN,
  109 /*10 */ 27,  125, 13,  203, 208, 40,  115, 68,
  110 /*11 */ 39,  26,  25,  IGN, 12,  52,  53,  67,
  111 /*12 */ 37,  24,  11,  IGN, 10,  38,  51,  66,
  112 /*13 */ 23,  22,  9,   IGN, IGN, 36,  50,  65,
  113 /*14 */ 28,  43,  14,  200, 205,  IGN, IGN, 211,
  114 /*15 */ IGN, IGN, IGN, IGN, IGN, IGN, 221, IGN
  115 };
  116 
  117 const u_int8_t tc5165_compaq_c_jp_keymap[] = {
  118 /*      0    1    2    3    4    5    6    7 */       
  119 /* 0 */ 38,  50,  49,  48,  47,  46,  45,  44, 
  120 /* 1 */ 56,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  121 /* 2 */ 13,  IGN, 112, 121, 123, 41,  28,  57, 
  122 /* 3 */ 205, 203, 208, 200, 39,  53,  52,  51,
  123 /* 4 */ 24,  25,  40,  IGN, 43,  26,  115, 58,
  124 /* 5 */ 54,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  125 /* 6 */ IGN, IGN, IGN, SPL, IGN, IGN, IGN, IGN, /* Light */
  126 /* 7 */ IGN, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  127 /* 8 */ 42,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  128 /* 9 */ 29,  IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  129 /*10 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  130 /*11 */ 221, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  131 /*12 */ 14,  27,  12,  11,  10,  15,  1,   125,
  132 /*13 */ 9,   8,   7,   6,   5,   4,   3,   2,
  133 /*14 */ 23,  22,  21,  20,  19,  18,  17,  16,
  134 /*15 */ 37,  36,  35,  34,  33,  32,  31,  30
  135 };
  136 
  137 const int tc5165_compaq_c_jp_special_keymap[] = {
  138         [KEY_SPECIAL_OFF]       = -1, /* don't have off button */
  139         [KEY_SPECIAL_LIGHT]     = 51
  140 };
  141 
  142 const u_int8_t m38813c_keymap[] = {
  143 /*      0    1    2    3    4    5    6    7 */       
  144 /* 0 */ 0,   1,   2,   3,   4,   5,   6,   7,
  145 /* 1 */ 8,   9,   10,  11,  12,  13,  14,  15,
  146 /* 2 */ 16,  17,  18,  19,  20,  21,  22,  23,
  147 /* 3 */ 24,  25,  26,  27,  28,  29,  30,  31,
  148 /* 4 */ 32,  33,  34,  35,  36,  37,  38,  39,
  149 /* 5 */ 40,  41,  42,  43,  44,  45,  46,  47,
  150 /* 6 */ 48,  49,  50,  51,  52,  53,  54,  55,
  151 /* 7 */ 56,  57,  58,  59,  60,  61,  62,  63,
  152 /* 8 */ 64,  65,  66,  67,  68,  69,  70,  71,
  153 /* 9 */ 200, 73,  74,  203, 76,  205,  78,  79,
  154 /*10 */ 208, 81,  82,  83,  84,  85,  86,  87,
  155 /*11 */ 88,  89,  90,  91,  92,  93,  94,  95,
  156 /*12 */ 96,  97,  98,  99,  100, 101, 102, 103,
  157 /*13 */ 104, 105, 106, 107, 108, 109, 110, 111,
  158 /*14 */ 112, 113, 114, 115, 116, 117, 118, 119,
  159 /*15 */ 120, 121, 122, 123, 124, 125, 126, 127
  160 };
  161 
  162 /* NEC MobileGearII MCR series (Japan) */
  163 static u_int8_t mcr_jp_keytrans[] = {
  164 /*00    right   ent     p       .       y       b       z       space   */
  165 /*08    down    /       o       ,       t       v       a       nfer    */
  166 /*10    left    \       i       m       r       c       w       menu    */
  167 /*18    ^       -       u       -       e       x       q       1       */
  168 /*20    pgdn    h/z     0       l       :       g       tab     f1      */
  169 /*28    xfer    ;       9       n       5       f       2       k       */
  170 /*30    up      [       8       j       4       d       6       -       */
  171 /*38    -       @       7       h       3       ]       s       -       */
  172 /*40    caps    -       -       -       bs      fnc     f8      f3      */
  173 /*48    -       alt     -       -       |       k/h     f7      f4      */
  174 /*50    -       -       ctrl    -       f10     pgup    f6      f2      */
  175 /*58    -       -       -       shift   del     f9      f5      esc     */
  176 /*----------------------------------------------------------------------*/
  177 /*00*/  205,     28,     25,     52,     21,     48,     44,     57,
  178 /*08*/  208,     53,     24,     51,     20,     47,     30,    123,
  179 /*10*/  203,    115,     23,     50,     19,     46,     17,    221,
  180 /*18*/   13,    IGN,     22,    IGN,     18,     45,     16,      2,
  181 /*20*/   81,     41,     11,     38,     40,     34,     15,     59,
  182 /*28*/  121,     39,     10,     49,      6,     33,      3,     37,
  183 /*30*/  200,     27,      9,     36,      5,     32,      7,    IGN,
  184 /*38*/   12,     26,      8,     35,      4,     43,     31,    IGN,
  185 /*40*/   58,    IGN,    IGN,    IGN,     14,    184,     66,     61,
  186 /*48*/  IGN,     56,    IGN,    IGN,    125,    112,     65,     62,
  187 /*50*/  IGN,    IGN,     29,    IGN,     68,     73,     64,     60,
  188 /*58*/  IGN,    IGN,    IGN,     42,     14,     67,     63,      1,
  189 };
  190 
  191 static const keysym_t mcr_jp_cmdmap[] = {
  192 /*      pos      command                normal          shifted         */
  193         KC(184), KS_Cmd,                KS_Alt_R,       KS_Multi_key,
  194         KC(73),  KS_Cmd_BrightnessUp,   KS_KP_Prior,    KS_KP_9,
  195         KC(81),  KS_Cmd_BrightnessDown, KS_KP_Next,     KS_KP_3,
  196         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  197         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  198         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  199 };
  200 
  201 /* IBM WorkPad z50 */
  202 static u_int8_t z50_keytrans[] = {
  203 /*00    f1      f3      f5      f7      f9      -       -       f11     */
  204 /*08    f2      f4      f6      f8      f10     -       -       f12     */
  205 /*10    '       [       -       0       p       ;       up      /       */
  206 /*18    -       -       -       9       o       l       .       -       */
  207 /*20    left    ]       =       8       i       k       ,       -       */
  208 /*28    h       y       6       7       u       j       m       n       */
  209 /*30    -       bs      num     del     -       \       ent     sp      */
  210 /*38    g       t       5       4       r       f       v       b       */
  211 /*40    -       -       -       3       e       d       c       right   */
  212 /*48    -       -       -       2       w       s       x       down    */
  213 /*50    esc     tab     ~       1       q       a       z       -       */
  214 /*58    menu    Ls      Lc      Rc      La      Ra      Rs      -       */
  215 /*----------------------------------------------------------------------*/
  216 /*00*/   59,     61,     63,     65,     67,    IGN,    IGN,     87,
  217 /*08*/   60,     62,     64,     66,     68,    IGN,    IGN,     88,
  218 /*10*/   40,     26,     12,     11,     25,     39,    200,     53,
  219 /*18*/  IGN,    IGN,    IGN,     10,     24,     38,     52,    IGN,
  220 /*20*/  203,     27,     13,      9,     23,     37,     51,    IGN,
  221 /*28*/   35,     21,      7,      8,     22,     36,     50,     49,
  222 /*30*/  IGN,     14,     69,     14,    IGN,     43,     28,     57,
  223 /*38*/   34,     20,      6,      5,     19,     33,     47,     48,
  224 /*40*/  IGN,    IGN,    IGN,      4,     18,     32,     46,    205,
  225 /*48*/  IGN,    IGN,    IGN,      3,     17,     31,     45,    208,
  226 /*50*/    1,     15,     41,      2,     16,     30,     44,    IGN,
  227 /*58*/  221,     42,     29,     29,     56,     56,     54,    IGN,
  228 };
  229 
  230 /* Sharp Tripad PV6000 and VADEM CLIO */
  231 static u_int8_t tripad_keytrans[] = {
  232 /*00    lsh     tab     `       q       esc     1       WIN     -       */
  233 /*08    ctrl    z       x       a       s       w       e       2       */
  234 /*10    lalt    sp      c       v       d       f       r       3       */
  235 /*18    b       n       g       h       t       y       4       5       */
  236 /*20    m       ,       j       k       u       i       6       7       */
  237 /*28    Fn      caps    l       o       p       8       9       0       */
  238 /*30    [       ]       la      .       /       ;       -       =       */
  239 /*38    rsh     ra      ua      da      '       ent     \       del     */
  240 /*40    -       -       -       -       -       -       -       -       */
  241 /*48    -       -       -       -       -       -       -       -       */
  242 /*50    -       -       -       -       -       -       -       -       */
  243 /*58    -       -       -       -       -       -       -       -       */
  244 /*----------------------------------------------------------------------*/
  245 /*00*/   42,     15,     41,     16,      1,      2,    104,    221,
  246 /*08*/   29,     44,     45,     30,     31,     17,     18,      3,
  247 /*10*/   56,     57,     46,     47,     32,     33,     19,      4,
  248 /*18*/   48,     49,     34,     35,     20,     21,      5,      6,
  249 /*20*/   50,     51,     36,     37,     22,     23,      7,      8,
  250 /*28*/  105,     58,     38,     24,     25,      9,     10,     11,
  251 /*30*/   26,     27,    203,     52,     53,     39,     12,     13,
  252 /*38*/   54,    205,    200,    208,     40,     28,     43,     14,
  253 /*40*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  254 /*48*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  255 /*50*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  256 /*58*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  257 };
  258 
  259 /* NEC Mobile Gear MCCS series */
  260 static u_int8_t mccs_keytrans[] = {
  261 /*00    caps    cr      rar     p       .       y       b       z       */
  262 /*08    alt     [       dar     o       ,       t       v       a       */
  263 /*10    zen     @       lar     i       m       r       c       w       */
  264 /*18    lctrl   ;       uar     u       n       e       x       q       */
  265 /*20    lshft   bs      \       0       l       6       g       tab     */
  266 /*28    nconv   |       /       9       k       5       f       2       */
  267 /*30    conv    =       ]       8       j       4       d       1       */
  268 /*38    hira    -       '       7       h       3       s       esc     */
  269 /*40    -       sp      -       -       -       -       -       -       */
  270 /*48    -       -       -       -       -       -       -       -       */
  271 /*50    -       -       -       -       -       -       -       -       */
  272 /*58    -       -       -       -       -       -       -       -       */
  273 /*----------------------------------------------------------------------*/
  274 /*00*/   58,     28,    205,     25,     52,     21,     48,     44,
  275 /*08*/   56,     27,    208,     24,     51,     20,     47,     30,
  276 /*10*/   41,     26,    203,     23,     50,     19,     46,     17,
  277 /*18*/   29,     39,    200,     22,     49,     18,     45,     16,
  278 /*20*/   42,     14,    115,     11,     38,      7,     34,     15,
  279 /*28*/  123,    125,     53,     10,     37,      6,     33,      3,
  280 /*30*/  121,     13,     43,      9,     36,      5,     32,      2,
  281 /*38*/  112,     12,     40,      8,     35,      4,     31,      1,
  282 /*40*/  IGN,     57,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  283 /*48*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  284 /*50*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  285 /*58*/  IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,    IGN,
  286 };
  287 
  288 static const keysym_t mccs_cmdmap[] = {
  289 /*      pos      command                normal          shifted         */
  290         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  291         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  292         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  293 };
  294 
  295 static u_int8_t mobilepro_keytrans[] = {
  296 /*00    space   ]       \       /       left    down    enter   l       */
  297 /*08    -       [       '       ;       right   up      .       o       */
  298 /*10    -       -       -       Windows v       c       x       z       */
  299 /*18    -       =       \-      `       f       d       s       a       */
  300 /*20    8       7       6       5       r       e       w       q       */
  301 /*28    ,       m       n       b       -       -       0       9       */
  302 /*30    k       j       h       g       4       3       2       1       */
  303 /*38    i       u       y       t       -       caps    del     esc     */
  304 /*40    alt_R   -       -       -       BS      p       TAB     Fn      */
  305 /*48    -       alt_L   -       -       pgdn    pgup    f10     f9      */
  306 /*50    -       -       ctrl    -       f8      f7      f6      f5      */
  307 /*58    -       -       -       shift   f4      f3      f2      f1      */
  308 /*----------------------------------------------------------------------*/
  309 /*00*/   57,     27,     43,     53,    203,    208,     28,     38,
  310 /*08*/  IGN,     26,     40,     39,    205,    200,     52,     24,
  311 /*10*/  IGN,    IGN,    IGN,    221,     47,     46,     45,     44,
  312 /*18*/  IGN,     13,     12,     41,     33,     32,     31,     30,
  313 /*20*/    9,      8,      7,      6,     19,     18,     17,     16,
  314 /*28*/   51,     50,     49,     48,    IGN,    IGN,     11,     10,
  315 /*30*/   37,     36,     35,     34,      5,      4,      3,      2,
  316 /*38*/   23,     22,     21,     20,    IGN,     58,     14,      1,
  317 /*40*/  184,    IGN,    IGN,    IGN,     14,     25,     15,    219,
  318 /*48*/  IGN,     56,    IGN,    IGN,     81,     73,     68,     67,
  319 /*50*/  IGN,    IGN,     29,    IGN,     66,     65,     64,     63,
  320 /*58*/  IGN,    IGN,    IGN,     42,     62,     61,     60,     59,
  321 };
  322 
  323 static const keysym_t mobilepro_cmdmap[] = {
  324 /*      pos      command                normal          shifted         */
  325         KC(219), KS_Cmd,                KS_Meta_L,      KS_Multi_key,
  326         KC(73),  KS_Cmd_BrightnessUp,   KS_KP_Prior,    KS_KP_9,
  327         KC(81),  KS_Cmd_BrightnessDown, KS_KP_Next,     KS_KP_3,
  328         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  329         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  330         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  331 };
  332 
  333 /* NEC MobilePro 750c by "Castor Fu" <castor@geocast.com> */
  334 static u_int8_t mobilepro750c_keytrans[] = {
  335 /*00    right   \       p       .       y       b       z       space   */
  336 /*08    down    /       o       ,       t       v       a       -       */
  337 /*10    left    enter   i       m       r       c       w       Win     */
  338 /*18    num     ]       u       n       e       x       q       caps    */
  339 /*20    pgdn    -       0       l       :       g       tab     esc     */
  340 /*28    -       ;       9       k       5       f       2       `       */
  341 /*30    up      [       8       j       4       d       1       '       */
  342 /*38    -       @       7       h       3       s       del     -       */
  343 /*40    shift   -       -       -       bs      f12     f8      f4      */
  344 /*48    -       alt     -       -       |       f11     f7      f3      */
  345 /*50    -       -       ctrl    -       f10     f10     f6      f2      */
  346 /*58    -       -       -       shift   del     f9      f5      f1      */
  347 /*----------------------------------------------------------------------*/
  348 /*00*/  205,    43,     25,     52,     21,     48,     44,     57,
  349 /*08*/  208,    53,     24,     51,     20,     47,     30,     IGN,
  350 /*10*/  203,    28,     23,     50,     19,     46,     17,     221,
  351 /*18*/  69,     27,     22,     49,     18,     45,     16,     58,
  352 /*20*/  81,     IGN,    11,     38,     7,      34,     15,     1,
  353 /*28*/  IGN,    39,     10,     37,     6,      33,     3,      41,
  354 /*30*/  200,    26,     9,      36,     5,      32,     2,      40,
  355 /*38*/  12,     26,     8,      35,     4,      31,     83,     IGN,
  356 /*40*/  42,     IGN,    IGN,    IGN,    14,     88,     66,     62,
  357 /*48*/  IGN,    56,     IGN,    IGN,    125,    87,     65,     61,
  358 /*50*/  IGN,    IGN,    29,     IGN,    68,     68,     64,     60,
  359 /*58*/  IGN,    IGN,    IGN,    42,     13,     67,     63,     59,
  360 };
  361 
  362 /* NEC MobilePro 780 */
  363 static u_int8_t mobilepro780_keytrans[] = {
  364 /*00    space   ]       \       /       left    right   enter   l       */
  365 /*08    -       [       '       ;       up      down    .       o       */
  366 /*10    -       -       -       Windows v       c       x       z       */
  367 /*18    -       =       \-      `       f       d       s       a       */
  368 /*20    8       7       6       5       r       e       w       q       */
  369 /*28    ,       m       n       b       -       -       0       9       */
  370 /*30    k       j       h       g       4       3       2       1       */
  371 /*38    i       u       y       t       -       caps    del     esc     */
  372 /*40    alt_R   -       -       -       BS      p       TAB     Fn      */
  373 /*48    -       alt_L   -       -       f12     f11     f10     f9      */
  374 /*50    -       -       ctrl    -       f8      f7      f6      f5      */
  375 /*58    -       -       -       shift   f4      f3      f2      f1      */
  376 /*----------------------------------------------------------------------*/
  377 /*00*/   57,     27,     43,     53,    203,    205,     28,     38,
  378 /*08*/  IGN,     26,     40,     39,    200,    208,     52,     24,
  379 /*10*/  IGN,    IGN,    IGN,    221,     47,     46,     45,     44,
  380 /*18*/  IGN,     13,     12,     41,     33,     32,     31,     30,
  381 /*20*/    9,      8,      7,      6,     19,     18,     17,     16,
  382 /*28*/   51,     50,     49,     48,    IGN,    IGN,     11,     10,
  383 /*30*/   37,     36,     35,     34,      5,      4,      3,      2,
  384 /*38*/   23,     22,     21,     20,    IGN,     58,     14,      1,
  385 /*40*/  184,    IGN,    IGN,    IGN,     14,     25,     15,    IGN,
  386 /*48*/  IGN,     56,    IGN,    IGN,     88,     87,     68,     67,
  387 /*50*/  IGN,    IGN,     29,    IGN,     66,     65,     64,     63,
  388 /*58*/  IGN,    IGN,    IGN,     42,     62,     61,     60,     59,
  389 };
  390 
  391 /* NEC MobilePro 8x0 */
  392 static u_int8_t mobilepro8x0_keytrans[] = {
  393 /*00    space   ]       \       /       left    right   enter   l       */
  394 /*08    -       [       '       ;       up      down    .       o       */
  395 /*10    -       -       -       Windows v       c       x       z       */
  396 /*18    -       =       \-      `       f       d       s       a       */
  397 /*20    8       7       6       5       r       e       w       q       */
  398 /*28    ,       m       n       b       -       -       0       9       */
  399 /*30    k       j       h       g       4       3       2       1       */
  400 /*38    i       u       y       t       -       caps    del     esc     */
  401 /*40    alt_R   -       -       -       BS      p       TAB     Fn      */
  402 /*48    -       alt_L   -       -       pgdn    pgup    f10     f9      */
  403 /*50    -       -       ctrl    -       f8      f7      f6      f5      */
  404 /*58    -       -       -       shift   f4      f3      f2      f1      */
  405 /*----------------------------------------------------------------------*/
  406 /*00*/   57,     27,     43,     53,    203,    205,     28,     38,
  407 /*08*/  IGN,     26,     40,     39,    200,    208,     52,     24,
  408 /*10*/  IGN,    IGN,    IGN,    221,     47,     46,     45,     44,
  409 /*18*/  IGN,     13,     12,     41,     33,     32,     31,     30,
  410 /*20*/    9,      8,      7,      6,     19,     18,     17,     16,
  411 /*28*/   51,     50,     49,     48,    IGN,    IGN,     11,     10,
  412 /*30*/   37,     36,     35,     34,      5,      4,      3,      2,
  413 /*38*/   23,     22,     21,     20,    IGN,     58,     14,      1,
  414 /*40*/  184,    IGN,    IGN,    IGN,     14,     25,     15,    219,
  415 /*48*/  IGN,     56,    IGN,    IGN,     81,     73,     68,     67,
  416 /*50*/  IGN,    IGN,     29,    IGN,     66,     65,     64,     63,
  417 /*58*/  IGN,    IGN,    IGN,     42,     62,     61,     60,     59,
  418 };
  419 
  420 static const keysym_t mobilepro8x0_cmdmap[] = {
  421 /*      pos      command                normal          shifted         */
  422         KC(219), KS_Cmd,                KS_Meta_L,      KS_Multi_key,
  423         KC(73),  KS_Cmd_BrightnessUp,   KS_KP_Prior,    KS_KP_9,
  424         KC(81),  KS_Cmd_BrightnessDown, KS_KP_Next,     KS_KP_3,
  425         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  426         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  427         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  428 };
  429 
  430 /* FUJITSU INTERTOP CX300 */
  431 static u_int8_t intertop_keytrans[] = {
  432 /*00    space   a2      1       tab     enter   caps    left    zenkaku */
  433 /*08    hiraga  a1      2       q       -       a       fnc     esc     */
  434 /*10    ins     w       3       s       del     ]       down    x       */
  435 /*18    z       e       4       d       a10     \       right   c       */
  436 /*20    backsla r       ;       f       a9      @       ^       v       */
  437 /*28    /       t       5       g       a8      p       -       b       */
  438 /*30    .       y       6       h       a7      l       0       n       */
  439 /*38    -       u       7       j       a5      o       bs      m       */
  440 /*40    -       a3      8       a4      -       i       k       ,       */
  441 /*48    num     :       9       [       a6      -       up      -       */
  442 /*50    -       -       -       -       shift_L -       -       shift_R */
  443 /*58    ctrl    win     muhenka henkan  alt     -       -       -       */
  444 /*----------------------------------------------------------------------*/
  445 /*00*/  57,     60,     2,      15,     28,     58,     205,    41,
  446 /*08*/  112,    59,     3,      16,     IGN,    30,     56,     1,
  447 /*10*/  210,    17,     4,      31,     83,     43,     208,    45,
  448 /*18*/  44,     18,     5,      32,     68,     125,    203,    46,
  449 /*20*/  115,    19,     39,     33,     67,     26,     13,     47,
  450 /*28*/  53,     20,     6,      34,     66,     25,     12,     48,
  451 /*30*/  52,     21,     7,      35,     65,     38,     11,     49,
  452 /*38*/  IGN,    22,     8,      36,     63,     24,     14,     50,
  453 /*40*/  IGN,    61,     9,      62,     IGN,    23,     37,     51,
  454 /*48*/  69,     40,     10,     27,     64,     IGN,    200,    IGN,
  455 /*50*/  IGN,    IGN,    IGN,    IGN,    42,     IGN,    IGN,    54,
  456 /*58*/  29,     221,    123,    121,    184,    IGN,    IGN,    IGN,
  457 };
  458 
  459 /* DoCoMo sigmarion (Japan) */
  460 static u_int8_t sigmarion_jp_keytrans[] = {
  461 /*00    right   ent     p       .       y       b       z       space   */
  462 /*08    down    /       o       ,       t       v       a       nfer    */
  463 /*10    left    \       i       m       r       c       w       menu    */
  464 /*18    |       -       u       -       e       x       q       1       */
  465 /*20    pgdn    h/z     0       l       :       g       tab     f1      */
  466 /*28    xfer    ;       9       n       5       f       2       k       */
  467 /*30    up      [       8       j       4       d       6       -       */
  468 /*38    -       @       7       h       3       ]       s       -       */
  469 /*40    caps    -       -       -       bs      fnc     f8      f3      */
  470 /*48    -       alt     -       -       ^       k/h     f7      f4      */
  471 /*50    -       -       ctrl    -       f10     pgup    f6      f2      */
  472 /*58    -       -       -       shift   del     f9      f5      esc     */
  473 /*----------------------------------------------------------------------*/
  474 /*00*/  205,     28,     25,     52,     21,     48,     44,     57,
  475 /*08*/  208,     53,     24,     51,     20,     47,     30,    123,
  476 /*10*/  203,    115,     23,     50,     19,     46,     17,    221,
  477 /*18*/  125,    IGN,     22,    IGN,     18,     45,     16,      2,
  478 /*20*/   81,     41,     11,     38,     40,     34,     15,    IGN,
  479 /*28*/  121,     39,     10,     49,      6,     33,      3,     37,
  480 /*30*/  200,     27,      9,     36,      5,     32,      7,    IGN,
  481 /*38*/   12,     26,      8,     35,      4,     43,     31,    IGN,
  482 /*40*/   58,    IGN,    IGN,    IGN,     14,    184,     66,    IGN,
  483 /*48*/  IGN,     56,    IGN,    IGN,     13,    112,     65,    IGN,
  484 /*50*/  IGN,    IGN,     29,    IGN,     68,     73,     64,    IGN,
  485 /*58*/  IGN,    IGN,    IGN,     42,     14,     67,    IGN,      1,
  486 };
  487 
  488 static const keysym_t sigmarion_cmdmap[] = {
  489 /*      pos      command                normal          shifted         */
  490         KC(184), KS_Cmd,                KS_Alt_R,       KS_Multi_key,
  491         KC(64),  KS_Cmd_Screen0,        KS_f6,          KS_f1,
  492         KC(65),  KS_Cmd_Screen1,        KS_f7,          KS_f2,
  493         KC(66),  KS_Cmd_Screen2,        KS_f8,          KS_f3,
  494         KC(67),  KS_Cmd_Screen3,        KS_f9,          KS_f4,
  495         KC(68),  KS_Cmd_Screen4,        KS_f10,         KS_f5,
  496         KC(27),  KS_Cmd_BrightnessUp,   KS_bracketleft, KS_braceleft,
  497         KC(43),  KS_Cmd_BrightnessDown, KS_bracketright,KS_braceright,
  498         KC(51),  KS_Cmd_ContrastDown,   KS_comma,       KS_less,
  499         KC(52),  KS_Cmd_ContrastUp,     KS_period,      KS_greater,
  500         KC(57),  KS_Cmd_BacklightToggle,KS_space,
  501 };
  502 
  503 /* NTT DoCoMo Pocket PostPet (Japan) */
  504 static u_int8_t pocketpostpet_keytrans[] = {
  505 /*00    esc     1       q       a       ctrl    -       down    left    */
  506 /*08    tab     2       w       s       z       -       right   up      */
  507 /*10    pgup    3       e       d       x       shift   -       -       */
  508 /*18    pgdn    4       r       f       c       alt     -       -       */
  509 /*20    f5      5       t       g       v       nfer    -       -       */
  510 /*28    f6      6       y       h       b       -       -       -       */
  511 /*30    f7      7       u       j       n       space   -       -       */
  512 /*38    f8      8       i       k       m       -       -       -       */
  513 /*40    f9      9       o       l       ,       xfer    -       -       */
  514 /*48    f10     0       p       ;       .       -       -       -       */
  515 /*50    \|      minus   @       :       /       ent     -       -       */
  516 /*58    bs      ^       [       ]       \_      del     -       -       */
  517 /* MailCheck  -> tab    */
  518 /* Prev       -> pgup   */
  519 /* Next       -> pgdn   */
  520 /* tab        -> ctrl   */
  521 /* h/z        -> menu   */
  522 /* k/h        -> alt    */
  523 /* knj        -> nfer   */
  524 /* eng        -> xfer   */
  525 /*----------------------------------------------------------------------*/
  526 /*00*/  1,      2,      16,     30,     29,     UNK,    208,    203,
  527 /*08*/  15,     3,      17,     31,     44,     UNK,    205,    200,
  528 /*10*/  73,     4,      18,     32,     45,     42,     UNK,    UNK,
  529 /*08*/  81,     5,      19,     33,     46,     56,     UNK,    UNK,
  530 /*20*/  63,     6,      20,     34,     47,     123,    UNK,    UNK,
  531 /*28*/  64,     7,      21,     35,     48,     UNK,    UNK,    UNK,
  532 /*30*/  65,     8,      22,     36,     49,     57,     UNK,    UNK,
  533 /*38*/  66,     9,      23,     37,     50,     UNK,    UNK,    UNK,
  534 /*40*/  67,     10,     24,     38,     51,     121,    UNK,    UNK,
  535 /*48*/  68,     11,     25,     39,     52,     UNK,    UNK,    UNK,
  536 /*50*/  125,    12,     26,     40,     53,     28,     UNK,    UNK,
  537 /*58*/  14,     13,     27,     43,     115,    14,     UNK,    UNK,
  538 };
  539 #endif /* hpcmips */
  540 
  541 #ifdef hpcsh
  542 /* 
  543  * HP Jornada 680/690 
  544  */
  545 /* Japanese */
  546 const u_int8_t jornada6x0_jp_keytrans[] = {
  547 /*      0    1    2    3    4    5    6    7 */       
  548 /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK, /* ctrl 29 */
  549 /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK, /* shift L 42 */
  550 /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
  551 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 14 , 203,
  552 /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 115, UNK,
  553 /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, 121, UNK,
  554 /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 , /* alt 56 */
  555 /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 123,
  556 /* 8 */ IGN, 53 , 39 , 25 , 11 , 200, UNK, 208,
  557 /* 9 */ 112, 40 , 27 , 26 , 12 , 125, UNK, 205,
  558 /*10 */ 41 , 28 , 43 , 14 , 13 , 54 , UNK, UNK, /* shift R 54 */
  559 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  560 /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 221, UNK,
  561 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  562 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  563 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  564 };
  565 
  566 /* US/UK - Fn to the left of the space bar and missing few keys */
  567 const u_int8_t jornada6x0_us_keytrans[] = {
  568 /*      0    1    2    3    4    5    6    7 */
  569 /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK,
  570 /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK,
  571 /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
  572 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
  573 /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 53 , UNK,
  574 /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, UNK, UNK,
  575 /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 ,
  576 /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 184,
  577 /* 8 */ 67 , UNK, 39 , 25 , 11 , 200, UNK, 208,
  578 /* 9 */ 68 , 40 , UNK, 43 , 12 , UNK, UNK, 205,
  579 /*10 */ 87 , 28 , UNK, 14 , 13 , 54 , UNK, UNK,
  580 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  581 /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 219, UNK,
  582 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  583 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  584 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  585 };
  586 
  587 /* US (ABA), UK (ABU) */
  588 static const keysym_t jornada6x0_us_keydesc[] = {
  589 /*  pos      normal          shifted        altgr       */
  590     KC(2),   KS_1,           KS_exclam,     KS_asciitilde,
  591     KC(3),   KS_2,           KS_at,         KS_grave,
  592     KC(4),   KS_3,           KS_numbersign, KS_sterling,
  593 #ifdef KS_euro
  594     KC(5),   KS_4,           KS_dollar,     KS_euro,
  595 #endif
  596     KC(25),  KS_p,           KS_P,          KS_braceleft,
  597     KC(39),  KS_semicolon,   KS_colon,      KS_bracketleft,
  598     KC(40),  KS_apostrophe,  KS_quotedbl,   KS_bracketright,
  599     KC(43),  KS_backslash,   KS_bar,        KS_braceright,
  600     KC(184), KS_Mode_switch, KS_Multi_key,
  601 
  602     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  603     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  604     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  605     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  606 };
  607 
  608 
  609 /* International - AltGr to the right and extra keys in three middle rows */
  610 const u_int8_t jornada6x0_intl_keytrans[] = {
  611 /*      0    1    2    3    4    5    6    7 */       
  612 /* 0 */ 59 , 45 , 31 , 17 , 3  , UNK, 29 , UNK,
  613 /* 1 */ 60 , 46 , 32 , 18 , 4  , 42 , UNK, UNK,
  614 /* 2 */ 61 , 47 , 33 , 19 , 5  , UNK, 57 , UNK,
  615 /* 3 */ 66 , 52 , 38 , 24 , 10 , UNK, 211, 203,
  616 /* 4 */ 65 , 51 , 37 , 23 , 9  , UNK, 184, UNK,
  617 /* 5 */ 64 , 50 , 36 , 22 , 8  , UNK, UNK, UNK,
  618 /* 6 */ 62 , 48 , 34 , 20 , 6  , UNK, UNK, 56 ,
  619 /* 7 */ 63 , 49 , 35 , 21 , 7  , UNK, UNK, 41 ,
  620 /* 8 */ 67 , 53 , 39 , 25 , 11 , 200, UNK, 208,
  621 /* 9 */ 68 , 40 , 27 , 26 , 12 , UNK, UNK, 205,
  622 /*10 */ 87 , 28 , 43 , 14 , 13 , 54 , UNK, UNK,
  623 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  624 /*12 */ 1  , 44 , 30 , 16 , 2  , 15 , 219, UNK,
  625 /*13 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  626 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  627 /*15 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  628 };
  629 
  630 /*
  631  * XXX: Add AltGr layer for #ABB here?  OTOH, all the keys necessary
  632  * for basic actions in DDB or shell are on the primary layer, so it
  633  * makes sense to support AltGr via wsconsctl(8) instead, as the same
  634  * primary layer is used e.g. in Russian models.  But it does make
  635  * sense to define the <AltGr> key itself here, as we base this layout
  636  * on KB_US that defines it as the right <Alt>.
  637  */
  638 /* European English (ABB) */
  639 static const keysym_t jornada6x0_intl_keydesc[] = {
  640 /*  pos      normal          shifted        altgr       */
  641     KC(184), KS_Mode_switch, KS_Multi_key,
  642 
  643     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  644     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  645     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  646     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  647 };
  648 
  649 /* German (ABD) */
  650 static const keysym_t jornada6x0_de_keydesc[] = {
  651 /*  pos      normal          shifted        altgr       */
  652     KC(2),   KS_1,           KS_exclam,     KS_brokenbar,
  653     KC(5),   KS_4,           KS_dollar,     KS_ccedilla,
  654     KC(6),   KS_5,           KS_percent,    KS_sterling,
  655     KC(7),   KS_6,           KS_ampersand,  KS_notsign,
  656 #ifdef KS_euro
  657     KC(18),  KS_e,           KS_E,          KS_euro,
  658 #endif
  659     KC(27),  KS_plus,        KS_asterisk,   KS_asciitilde, /* NB: not dead */
  660     KC(30),  KS_a,           KS_A,          KS_bar,
  661     KC(41),  KS_asciicircum, KS_degree,                    /* NB: not dead */
  662     KC(43),  KS_numbersign,  KS_apostrophe, KS_dead_diaeresis,
  663     KC(44),  KS_y,           KS_Y,          KS_less,
  664     KC(45),  KS_x,           KS_X,          KS_greater,
  665     KC(46),  KS_c,           KS_C,          KS_cent,
  666 
  667     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  668     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  669     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  670     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  671 };
  672 
  673 /* French (ABF) */
  674 static const keysym_t jornada6x0_fr_keydesc[] = {
  675 /*  pos      normal          shifted        altgr       */
  676     KC(2),   KS_ampersand,   KS_1,          KS_plusminus,
  677 #ifdef KS_euro
  678     KC(18),  KS_e,           KS_E,          KS_euro,
  679 #endif
  680     KC(19),  KS_r,           KS_R,          KS_onequarter,
  681     KC(20),  KS_t,           KS_T,          KS_onehalf,
  682     KC(21),  KS_y,           KS_Y,          KS_threequarters,
  683     KC(25),  KS_p,           KS_P,          KS_paragraph,
  684     KC(30),  KS_q,           KS_Q,          KS_brokenbar,
  685     KC(31),  KS_s,           KS_S,          KS_guillemotleft,
  686     KC(32),  KS_d,           KS_D,          KS_guillemotright,
  687     KC(40),  KS_ugrave,      KS_percent,    KS_dead_acute,
  688     KC(41),  KS_twosuperior, KS_voidSymbol, KS_threesuperior,
  689     KC(43),  KS_asterisk,    KS_mu,         KS_notsign,
  690     KC(44),  KS_w,           KS_W,          KS_less,
  691     KC(45),  KS_x,           KS_X,          KS_greater,
  692     KC(46),  KS_c,           KS_C,          KS_cent,
  693     KC(50),  KS_comma,       KS_question,   KS_mu,
  694     KC(53),  KS_exclam,      KS_section,    KS_Eacute,
  695     KC(184), KS_Mode_switch, KS_Multi_key,
  696 
  697     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  698     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  699     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  700     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  701 };
  702 
  703 /* Scandinavian */
  704 static const keysym_t jornada6x0_scnv_keydesc[] = {
  705 /*  pos      normal          shifted        altgr       */
  706     KC(2),   KS_1,           KS_exclam,     KS_asciitilde,
  707     KC(3),   KS_2,           KS_quotedbl,   KS_at,
  708     KC(4),   KS_3,           KS_numbersign, KS_sterling,
  709     KC(5),   KS_4,           KS_currency,   KS_dollar,
  710     KC(7),   KS_6,           KS_ampersand,
  711     KC(8),   KS_7,           KS_slash,      KS_braceleft,
  712     KC(9),   KS_8,           KS_parenleft,  KS_bracketleft,
  713     KC(10),  KS_9,           KS_parenright, KS_bracketright,
  714     KC(11),  KS_0,           KS_equal,      KS_braceright,
  715     KC(12),  KS_plus,        KS_question,   KS_backslash,
  716     KC(13),  KS_apostrophe,  KS_grave,
  717     KC(25),  KS_p,           KS_P,          KS_braceleft,
  718     KC(26),  KS_aring,
  719     /*
  720      * XXX: KC(39) and KC(40) has odiaeresis/adiaeresis *and*
  721      * oslash/ae on them.  Apparently localized WinCE uses the former
  722      * for Swedish and Finnish and the latter for Danish and
  723      * Norwegian.  But as the keyboard doesn't seem to have
  724      * semicolon/colon and minus/underscore nowhere on the primary and
  725      * altgr layers, I put them here (semicolon/colon is inherited).
  726      */
  727     KC(40),  KS_minus,       KS_underscore, /* XXX */
  728     KC(41),  KS_paragraph,   KS_onehalf,    KS_bar,
  729     KC(184), KS_Mode_switch, KS_Multi_key,
  730 
  731     KC(200), KS_Cmd_BrightnessUp,   KS_Up,
  732     KC(203), KS_Cmd_ContrastDown,   KS_Left,
  733     KC(205), KS_Cmd_ContrastUp,     KS_Right,
  734     KC(208), KS_Cmd_BrightnessDown, KS_Down,
  735 };
  736 
  737 
  738 const int jornada6x0_special_keymap[] = {
  739         [KEY_SPECIAL_OFF]       = 88,
  740         [KEY_SPECIAL_LIGHT]     = -1
  741 };
  742 
  743 /* 
  744  * HP 620LX
  745  */
  746 /* Japanese */
  747 const u_int8_t hp620lx_jp_keytrans[] = {
  748 /*      0    1    2    3    4    5    6    7 */       
  749 /* 0 */ 2  , 16 , 112, UNK, IGN, UNK, 42 , 30 , /* REC button */
  750 /* 1 */ 3  , 17 , 58 , 44 , UNK, 45 , 15 , 31 ,
  751 /* 2 */ 4  , 18 , UNK, 56 , 59 , 46 , 1  , 32 ,
  752 /* 3 */ 5  , 19 , UNK, UNK, 60 , 123, UNK, 33 ,
  753 /* 4 */ 6  , 20 , 47 , 57 , 61 , 48 , UNK, 34 ,
  754 /* 5 */ 7  , 21 , UNK, 121, 62 , 49 , UNK, 35 ,
  755 /* 6 */ 8  , 22 , UNK, 125, 63 , 50 , UNK, 36 ,
  756 /* 7 */ 9  , 23 , 52 , 115, 64 , 51 , UNK, 37 ,
  757 /* 8 */ 10 , 24 , 53 , 203, 65 , 200, 39 , 38 ,
  758 /* 9 */ 11 , 25 , 40 , 208, 66 , 205, 27 , 26 ,
  759 /*10 */ 12 , 13 , 28 , UNK, UNK, UNK, 41 , 43 ,
  760 /*11 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN, /* ON button */
  761 /*12 */ 29 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  762 /*13 */ 14 , IGN, IGN, IGN, IGN, IGN, IGN, IGN,
  763 /*14 */ UNK, UNK, UNK, UNK, UNK, UNK, UNK, UNK,
  764 /*15 */ SPL, IGN, IGN, IGN, IGN, IGN, IGN, IGN  /* LED button */
  765 };
  766 
  767 const int hp620lx_special_keymap[] = {
  768         [KEY_SPECIAL_OFF]       = 88,
  769         [KEY_SPECIAL_LIGHT]     = 120
  770 };
  771 
  772 /* 
  773  * HITACHI PERSONA HPW50PAD
  774  */
  775 /* Japanese */
  776 const u_int8_t persona_hpw50pad_jp_keytrans[] = {
  777 /*      0    1    2    3    4    5    6    7 */       
  778 /* 0 */ SPL, UNK, 61 , 59 , UNK, 60 , 62 , UNK,
  779 /* 1 */ UNK, UNK, UNK, 29 , UNK, UNK, 123, UNK,
  780 /* 2 */ UNK, UNK, UNK, 1  , UNK, 56 , 46 , UNK,
  781 /* 3 */ UNK, UNK, 221, 41 , UNK, 15 , 33 , UNK,
  782 /* 4 */ 42 , UNK, 58 , 45 , UNK, 44 , 20 , UNK,
  783 /* 5 */ 54 , UNK, 16 , 30 , UNK, 2  , 6  , UNK,
  784 /* 6 */ 205, UNK, 4  , 17 , UNK, 3  , 5  , UNK,
  785 /* 7 */ 14 , UNK, 18 , 31 , UNK, 32 , 19 , UNK,
  786 /* 8 */ UNK, UNK, 68 , 67 , 66 , 65 , 64 , 63 ,
  787 /* 9 */ UNK, UNK, 203, 121, 53 , 48 , 49 , 47 ,
  788 /*10 */ UNK, UNK, 208, 112, 57 , 51 , 50 , 34 ,
  789 /*11 */ UNK, UNK, 43 , 52 , 39 , 37 , 36 , 35 ,
  790 /*12 */ UNK, UNK, 27 , 40 , 26 , 38 , 23 , 22 ,
  791 /*13 */ UNK, UNK, 200, 28 , 115, 24 , 9  , 21 ,
  792 /*14 */ UNK, UNK, 125, 12 , UNK, 10 , UNK, UNK,
  793 /*15 */ UNK, UNK, 14 , 13 , 11 , 25 , 8  , 7  ,
  794 };
  795 
  796 const int persona_hpw50pad_special_keymap[] = {
  797         [KEY_SPECIAL_OFF]       =  0,
  798         [KEY_SPECIAL_LIGHT]     = -1
  799 };
  800 
  801 #endif /* hpcsh */
  802 
  803 
  804 /*
  805  * REMINDER:
  806  *   When adding new entry to this array, make sure that pckbd_keydesctab[]
  807  *   in sys/dev/pckbport/wskbdmap_mfii.c has a placeholder KB_MACHDEP entry
  808  *   for the base ht_layout that you refer.
  809  */
  810 const struct hpckbd_keymap_table {
  811         platid_t        *ht_platform;
  812         const u_int8_t  *ht_keymap;
  813         const int       *ht_special;
  814         struct {
  815                 const keysym_t  *map;
  816                 int size;
  817         } ht_cmdmap;
  818         kbd_t           ht_layout;
  819 } hpckbd_keymap_table[] = {
  820 #ifdef hpcmips
  821         {       &platid_mask_MACH_COMPAQ_C,
  822                 tc5165_compaq_c_jp_keymap, 
  823                 tc5165_compaq_c_jp_special_keymap,
  824                 NULLCMDMAP,
  825                 KB_JP },
  826         {       &platid_mask_MACH_VICTOR_INTERLINK,
  827                 m38813c_keymap, 
  828                 default_special_keymap,
  829                 NULLCMDMAP,
  830                 KB_JP },
  831         {       &platid_mask_MACH_SHARP_TELIOS,
  832                 tc5165_telios_jp_keymap, 
  833                 default_special_keymap,
  834                 NULLCMDMAP,
  835                 KB_JP },
  836         {       &platid_mask_MACH_SHARP_MOBILON,
  837                 tc5165_mobilon_keymap, 
  838                 tc5165_mobilon_special_keymap,
  839                 NULLCMDMAP,
  840                 KB_US },
  841         {       &platid_mask_MACH_NEC_MCR_500A,
  842                 mobilepro750c_keytrans,
  843                 NULL,
  844                 NULLCMDMAP,
  845                 KB_US },
  846         {       &platid_mask_MACH_NEC_MCR_520A,
  847                 mobilepro_keytrans,
  848                 NULL,
  849                 CMDMAP(mobilepro_cmdmap),
  850                 KB_US },
  851         {       &platid_mask_MACH_NEC_MCR_530A,
  852                 mobilepro780_keytrans,
  853                 NULL,
  854                 NULLCMDMAP,
  855                 KB_US },
  856         {       &platid_mask_MACH_NEC_MCR_700A,
  857                 mobilepro8x0_keytrans, 
  858                 NULL,
  859                 CMDMAP(mobilepro8x0_cmdmap),
  860                 KB_US },
  861         {       &platid_mask_MACH_NEC_MCR_730A,
  862                 mobilepro8x0_keytrans,
  863                 NULL,
  864                 CMDMAP(mobilepro8x0_cmdmap),
  865                 KB_US },
  866         {       &platid_mask_MACH_NEC_MCR_MPRO700,
  867                 mobilepro_keytrans,
  868                 NULL,
  869                 NULLCMDMAP,
  870                 KB_US },
  871         {       &platid_mask_MACH_NEC_MCR_SIGMARION,
  872                 sigmarion_jp_keytrans,
  873                 NULL,
  874                 CMDMAP(sigmarion_cmdmap),
  875                 KB_JP },
  876         {       &platid_mask_MACH_NEC_MCR_SIGMARION2,
  877                 sigmarion_jp_keytrans,
  878                 NULL,
  879                 CMDMAP(sigmarion_cmdmap),
  880                 KB_JP },
  881         {       &platid_mask_MACH_NEC_MCR,
  882                 mcr_jp_keytrans,
  883                 NULL,
  884                 CMDMAP(mcr_jp_cmdmap),
  885                 KB_JP },
  886         {       &platid_mask_MACH_IBM_WORKPAD_Z50,
  887                 z50_keytrans,
  888                 NULL,
  889                 NULLCMDMAP,
  890                 KB_US },
  891         {       &platid_mask_MACH_SHARP_TRIPAD,
  892                 tripad_keytrans,
  893                 NULL,
  894                 NULLCMDMAP,
  895                 KB_US },
  896         {       &platid_mask_MACH_VADEM_CLIO_C,
  897                 tripad_keytrans,
  898                 NULL,
  899                 NULLCMDMAP,
  900                 KB_US },
  901         {       &platid_mask_MACH_NEC_MCCS,
  902                 mccs_keytrans,
  903                 NULL,
  904                 CMDMAP(mccs_cmdmap),
  905                 KB_JP },
  906         {       &platid_mask_MACH_FUJITSU_INTERTOP,
  907                 intertop_keytrans,
  908                 NULL,
  909                 NULLCMDMAP,
  910                 KB_JP },
  911         {       &platid_mask_MACH_CASIO_POCKETPOSTPET,
  912                 pocketpostpet_keytrans,
  913                 NULL,
  914                 NULLCMDMAP,
  915                 KB_JP },
  916 #endif /* hpcmips */
  917 #ifdef hpcsh
  918         /*
  919          * HP Jornada 680/690
  920          */
  921         /* Japanese */
  922         {       &platid_mask_MACH_HP_JORNADA_680JP,
  923                 jornada6x0_jp_keytrans,
  924                 jornada6x0_special_keymap,
  925                 NULLCMDMAP,
  926                 KB_JP },
  927         {       &platid_mask_MACH_HP_JORNADA_690JP,
  928                 jornada6x0_jp_keytrans,
  929                 jornada6x0_special_keymap,
  930                 NULLCMDMAP,
  931                 KB_JP },
  932         /* US (ABA), UK (ABU) */
  933         {       &platid_mask_MACH_HP_JORNADA_680,
  934                 jornada6x0_us_keytrans,
  935                 jornada6x0_special_keymap,
  936                 CMDMAP(jornada6x0_us_keydesc),
  937                 KB_US },
  938         {       &platid_mask_MACH_HP_JORNADA_690,
  939                 jornada6x0_us_keytrans,
  940                 jornada6x0_special_keymap,
  941                 CMDMAP(jornada6x0_us_keydesc),
  942                 KB_US },
  943         /* European English (ABB) */
  944         {       &platid_mask_MACH_HP_JORNADA_680EU,
  945                 jornada6x0_intl_keytrans,
  946                 jornada6x0_special_keymap,
  947                 CMDMAP(jornada6x0_intl_keydesc),
  948                 KB_US },
  949         {       &platid_mask_MACH_HP_JORNADA_690EU,
  950                 jornada6x0_intl_keytrans,
  951                 jornada6x0_special_keymap,
  952                 CMDMAP(jornada6x0_intl_keydesc),
  953                 KB_US },
  954         /* German (ABD) */
  955         {       &platid_mask_MACH_HP_JORNADA_680DE,
  956                 jornada6x0_intl_keytrans,
  957                 jornada6x0_special_keymap,
  958                 CMDMAP(jornada6x0_de_keydesc),
  959                 KB_DE },
  960         {       &platid_mask_MACH_HP_JORNADA_690DE,
  961                 jornada6x0_intl_keytrans,
  962                 jornada6x0_special_keymap,
  963                 CMDMAP(jornada6x0_de_keydesc),
  964                 KB_DE },
  965         /* French (ABF) */
  966         {       &platid_mask_MACH_HP_JORNADA_680FR,
  967                 jornada6x0_intl_keytrans,
  968                 jornada6x0_special_keymap,
  969                 CMDMAP(jornada6x0_fr_keydesc),
  970                 KB_FR },
  971         {       &platid_mask_MACH_HP_JORNADA_690FR,
  972                 jornada6x0_intl_keytrans,
  973                 jornada6x0_special_keymap,
  974                 CMDMAP(jornada6x0_fr_keydesc),
  975                 KB_FR },
  976         /* Scandinavian */
  977         {       &platid_mask_MACH_HP_JORNADA_680SV,
  978                 jornada6x0_intl_keytrans,
  979                 jornada6x0_special_keymap,
  980                 CMDMAP(jornada6x0_scnv_keydesc),
  981                 KB_US },
  982         {       &platid_mask_MACH_HP_JORNADA_690SV,
  983                 jornada6x0_intl_keytrans,
  984                 jornada6x0_special_keymap,
  985                 CMDMAP(jornada6x0_scnv_keydesc),
  986                 KB_US },
  987         /*
  988          * HP 620LX
  989          */
  990         /* Japanese */
  991         {       &platid_mask_MACH_HP_LX_620JP,
  992                 hp620lx_jp_keytrans,
  993                 hp620lx_special_keymap,
  994                 NULLCMDMAP,
  995                 KB_JP },
  996         /*
  997          * PERSONA HPW50PAD
  998          */
  999         /* Japanese */
 1000         {       &platid_mask_MACH_HITACHI_PERSONA_HPW50PAD,
 1001                 persona_hpw50pad_jp_keytrans,
 1002                 persona_hpw50pad_special_keymap,
 1003                 NULLCMDMAP,
 1004                 KB_JP },
 1005 #endif /* hpcsh */
 1006         { NULL } /* end mark */
 1007 };

Cache object: 765fa7d856500923f23afe0a11729ba2


[ 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.