Changeset c8bf88d in mainline for kernel/genarch/src/kbrd/scanc_pc.c


Ignore:
Timestamp:
2009-04-03T15:52:14Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
a7b1071
Parents:
2398ee9
Message:

represent special keystrokes (cursor arrows, page up/down, delete, etc.) as appropriate Unicode characters
do not parse ANSI control sequences in kconsole, but in serial line driver

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/genarch/src/kbrd/scanc_pc.c

    r2398ee9 rc8bf88d  
    2727 */
    2828
    29 /** @addtogroup genarch 
     29/** @addtogroup genarch
    3030 * @{
    3131 */
    3232/**
    3333 * @file
    34  * @brief       Scan codes for pc keyboards.
     34 * @brief Scan codes for PC keyboards.
    3535 */
    3636
    3737#include <genarch/kbrd/scanc.h>
     38#include <typedefs.h>
     39#include <string.h>
    3840
    3941/** Primary meaning of scancodes. */
    40 char sc_primary_map[] = {
    41         SPECIAL, /* 0x00 */
    42         SPECIAL, /* 0x01 - Esc */
     42wchar_t sc_primary_map[SCANCODES] = {
     43        U_NULL,         /* 0x00 - undefined */
     44        U_ESCAPE,      /* 0x01 - Esc */
    4345        '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=',
    44         '\b', /* 0x0e - Backspace */
    45         '\t', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '\n',
    46         SPECIAL, /* 0x1d - LCtrl */
    47         'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '\'',
    48         '`',
    49         SPECIAL, /* 0x2a - LShift */
    50         '\\',
    51         'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/',
    52         SPECIAL, /* 0x36 - RShift */
    53         '*',
    54         SPECIAL, /* 0x38 - LAlt */
     46        '\b',           /* 0x0e - Backspace */
     47        '\t',           /* 0x0f - Tab */
     48        'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']',
     49        '\n',           /* 0x1e - Enter */
     50        U_SPECIAL,      /* 0x1d - Left Ctrl */
     51        'a', 's', 'd', 'f', 'g', 'h', 'j', 'k', 'l', ';', '\'', '`',
     52        U_SPECIAL,      /* 0x2a - Left Shift */
     53        '\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/',
     54        U_SPECIAL,      /* 0x36 - Right Shift */
     55        U_SPECIAL,      /* 0x37 - Print Screen */
     56        U_SPECIAL,      /* 0x38 - Left Alt */
    5557        ' ',
    56         SPECIAL, /* 0x3a - CapsLock */
    57         SPECIAL, /* 0x3b - F1 */
    58         SPECIAL, /* 0x3c - F2 */
    59         SPECIAL, /* 0x3d - F3 */
    60         SPECIAL, /* 0x3e - F4 */
    61         SPECIAL, /* 0x3f - F5 */
    62         SPECIAL, /* 0x40 - F6 */
    63         SPECIAL, /* 0x41 - F7 */
    64         SPECIAL, /* 0x42 - F8 */
    65         SPECIAL, /* 0x43 - F9 */
    66         SPECIAL, /* 0x44 - F10 */
    67         SPECIAL, /* 0x45 - NumLock */
    68         SPECIAL, /* 0x46 - ScrollLock */
    69         '7', '8', '9', '-',
    70         '4', '5', '6', '+',
    71         '1', '2', '3',
    72         '0', '.',
    73         SPECIAL, /* 0x54 - Alt-SysRq */
    74         SPECIAL, /* 0x55 - F11/F12/PF1/FN */
    75         SPECIAL, /* 0x56 - unlabelled key next to LAlt */
    76         SPECIAL, /* 0x57 - F11 */
    77         SPECIAL, /* 0x58 - F12 */
    78         SPECIAL, /* 0x59 */
    79         SPECIAL, /* 0x5a */
    80         SPECIAL, /* 0x5b */
    81         SPECIAL, /* 0x5c */
    82         SPECIAL, /* 0x5d */
    83         SPECIAL, /* 0x5e */
    84         SPECIAL, /* 0x5f */
    85         SPECIAL, /* 0x60 */
    86         SPECIAL, /* 0x61 */
    87         SPECIAL, /* 0x62 */
    88         SPECIAL, /* 0x63 */
    89         SPECIAL, /* 0x64 */
    90         SPECIAL, /* 0x65 */
    91         SPECIAL, /* 0x66 */
    92         SPECIAL, /* 0x67 */
    93         SPECIAL, /* 0x68 */
    94         SPECIAL, /* 0x69 */
    95         SPECIAL, /* 0x6a */
    96         SPECIAL, /* 0x6b */
    97         SPECIAL, /* 0x6c */
    98         SPECIAL, /* 0x6d */
    99         SPECIAL, /* 0x6e */
    100         SPECIAL, /* 0x6f */
    101         SPECIAL, /* 0x70 */
    102         SPECIAL, /* 0x71 */
    103         SPECIAL, /* 0x72 */
    104         SPECIAL, /* 0x73 */
    105         SPECIAL, /* 0x74 */
    106         SPECIAL, /* 0x75 */
    107         SPECIAL, /* 0x76 */
    108         SPECIAL, /* 0x77 */
    109         SPECIAL, /* 0x78 */
    110         SPECIAL, /* 0x79 */
    111         SPECIAL, /* 0x7a */
    112         SPECIAL, /* 0x7b */
    113         SPECIAL, /* 0x7c */
    114         SPECIAL, /* 0x7d */
    115         SPECIAL, /* 0x7e */
    116         SPECIAL, /* 0x7f */
     58        U_SPECIAL,      /* 0x3a - CapsLock */
     59        U_SPECIAL,      /* 0x3b - F1 */
     60        U_SPECIAL,      /* 0x3c - F2 */
     61        U_SPECIAL,      /* 0x3d - F3 */
     62        U_SPECIAL,      /* 0x3e - F4 */
     63        U_SPECIAL,      /* 0x3f - F5 */
     64        U_SPECIAL,      /* 0x40 - F6 */
     65        U_SPECIAL,      /* 0x41 - F7 */
     66        U_SPECIAL,      /* 0x42 - F8 */
     67        U_SPECIAL,      /* 0x43 - F9 */
     68        U_SPECIAL,      /* 0x44 - F10 */
     69        U_SPECIAL,      /* 0x45 - NumLock */
     70        U_SPECIAL,      /* 0x46 - ScrollLock */
     71        U_HOME_ARROW,   /* 0x47 - Home */
     72        U_UP_ARROW,     /* 0x48 - Up Arrow */
     73        U_PAGE_UP,      /* 0x49 - Page Up */
     74        '-',
     75        U_LEFT_ARROW,   /* 0x4b - Left Arrow */
     76        '5',            /* 0x4c - Numpad Center */
     77        U_RIGHT_ARROW,  /* 0x4d - Right Arrow */
     78        '+',
     79        U_END_ARROW,    /* 0x4f - End */
     80        U_DOWN_ARROW,   /* 0x50 - Down Arrow */
     81        U_PAGE_DOWN,    /* 0x51 - Page Down */
     82        '0',            /* 0x52 - Numpad Insert */
     83        U_DELETE,       /* 0x53 - Delete */
     84        U_SPECIAL,      /* 0x54 - Alt-SysRq */
     85        U_SPECIAL,      /* 0x55 - F11/F12/PF1/FN */
     86        U_SPECIAL,      /* 0x56 - unlabelled key next to LAlt */
     87        U_SPECIAL,      /* 0x57 - F11 */
     88        U_SPECIAL,      /* 0x58 - F12 */
     89        U_SPECIAL,      /* 0x59 */
     90        U_SPECIAL,      /* 0x5a */
     91        U_SPECIAL,      /* 0x5b */
     92        U_SPECIAL,      /* 0x5c */
     93        U_SPECIAL,      /* 0x5d */
     94        U_SPECIAL,      /* 0x5e */
     95        U_SPECIAL,      /* 0x5f */
     96        U_SPECIAL,      /* 0x60 */
     97        U_SPECIAL,      /* 0x61 */
     98        U_SPECIAL,      /* 0x62 */
     99        U_SPECIAL,      /* 0x63 */
     100        U_SPECIAL,      /* 0x64 */
     101        U_SPECIAL,      /* 0x65 */
     102        U_SPECIAL,      /* 0x66 */
     103        U_SPECIAL,      /* 0x67 */
     104        U_SPECIAL,      /* 0x68 */
     105        U_SPECIAL,      /* 0x69 */
     106        U_SPECIAL,      /* 0x6a */
     107        U_SPECIAL,      /* 0x6b */
     108        U_SPECIAL,      /* 0x6c */
     109        U_SPECIAL,      /* 0x6d */
     110        U_SPECIAL,      /* 0x6e */
     111        U_SPECIAL,      /* 0x6f */
     112        U_SPECIAL,      /* 0x70 */
     113        U_SPECIAL,      /* 0x71 */
     114        U_SPECIAL,      /* 0x72 */
     115        U_SPECIAL,      /* 0x73 */
     116        U_SPECIAL,      /* 0x74 */
     117        U_SPECIAL,      /* 0x75 */
     118        U_SPECIAL,      /* 0x76 */
     119        U_SPECIAL,      /* 0x77 */
     120        U_SPECIAL,      /* 0x78 */
     121        U_SPECIAL,      /* 0x79 */
     122        U_SPECIAL,      /* 0x7a */
     123        U_SPECIAL,      /* 0x7b */
     124        U_SPECIAL,      /* 0x7c */
     125        U_SPECIAL,      /* 0x7d */
     126        U_SPECIAL,      /* 0x7e */
     127        U_SPECIAL       /* 0x7f */
    117128};
    118129
    119130/** Secondary meaning of scancodes. */
    120 char sc_secondary_map[] = {
    121         SPECIAL, /* 0x00 */
    122         SPECIAL, /* 0x01 - Esc */
     131wchar_t sc_secondary_map[SCANCODES] = {
     132        U_NULL,         /* 0x00 - undefined */
     133        U_ESCAPE,      /* 0x01 - Esc */
    123134        '!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '+',
    124         SPECIAL, /* 0x0e - Backspace */
    125         '\t', 'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}', '\n',
    126         SPECIAL, /* 0x1d - LCtrl */
    127         'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', '"',
    128         '~',
    129         SPECIAL, /* 0x2a - LShift */
    130         '|',
    131         'Z', 'X', 'C', 'V', 'B', 'N', 'M', '<', '>', '?',
    132         SPECIAL, /* 0x36 - RShift */
    133         '*',
    134         SPECIAL, /* 0x38 - LAlt */
     135        '\b',          /* 0x0e - Backspace */
     136        '\t',           /* 0x0f - Tab */
     137        'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '{', '}',
     138        '\n',           /* 0x1e - Enter */
     139        U_SPECIAL,      /* 0x1d - Left Ctrl */
     140        'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ':', '"', '~',
     141        U_SPECIAL,      /* 0x2a - Left Shift */
     142        '|', 'Z', 'X', 'C', 'V', 'B', 'N', 'M', '<', '>', '?',
     143        U_SPECIAL,      /* 0x36 - Right Shift */
     144        U_SPECIAL,      /* 0x37 - Print Screen */
     145        U_SPECIAL,      /* 0x38 - Left Alt */
    135146        ' ',
    136         SPECIAL, /* 0x3a - CapsLock */
    137         SPECIAL, /* 0x3b - F1 */
    138         SPECIAL, /* 0x3c - F2 */
    139         SPECIAL, /* 0x3d - F3 */
    140         SPECIAL, /* 0x3e - F4 */
    141         SPECIAL, /* 0x3f - F5 */
    142         SPECIAL, /* 0x40 - F6 */
    143         SPECIAL, /* 0x41 - F7 */
    144         SPECIAL, /* 0x42 - F8 */
    145         SPECIAL, /* 0x43 - F9 */
    146         SPECIAL, /* 0x44 - F10 */
    147         SPECIAL, /* 0x45 - NumLock */
    148         SPECIAL, /* 0x46 - ScrollLock */
    149         '7', '8', '9', '-',
    150         '4', '5', '6', '+',
    151         '1', '2', '3',
    152         '0', '.',
    153         SPECIAL, /* 0x54 - Alt-SysRq */
    154         SPECIAL, /* 0x55 - F11/F12/PF1/FN */
    155         SPECIAL, /* 0x56 - unlabelled key next to LAlt */
    156         SPECIAL, /* 0x57 - F11 */
    157         SPECIAL, /* 0x58 - F12 */
    158         SPECIAL, /* 0x59 */
    159         SPECIAL, /* 0x5a */
    160         SPECIAL, /* 0x5b */
    161         SPECIAL, /* 0x5c */
    162         SPECIAL, /* 0x5d */
    163         SPECIAL, /* 0x5e */
    164         SPECIAL, /* 0x5f */
    165         SPECIAL, /* 0x60 */
    166         SPECIAL, /* 0x61 */
    167         SPECIAL, /* 0x62 */
    168         SPECIAL, /* 0x63 */
    169         SPECIAL, /* 0x64 */
    170         SPECIAL, /* 0x65 */
    171         SPECIAL, /* 0x66 */
    172         SPECIAL, /* 0x67 */
    173         SPECIAL, /* 0x68 */
    174         SPECIAL, /* 0x69 */
    175         SPECIAL, /* 0x6a */
    176         SPECIAL, /* 0x6b */
    177         SPECIAL, /* 0x6c */
    178         SPECIAL, /* 0x6d */
    179         SPECIAL, /* 0x6e */
    180         SPECIAL, /* 0x6f */
    181         SPECIAL, /* 0x70 */
    182         SPECIAL, /* 0x71 */
    183         SPECIAL, /* 0x72 */
    184         SPECIAL, /* 0x73 */
    185         SPECIAL, /* 0x74 */
    186         SPECIAL, /* 0x75 */
    187         SPECIAL, /* 0x76 */
    188         SPECIAL, /* 0x77 */
    189         SPECIAL, /* 0x78 */
    190         SPECIAL, /* 0x79 */
    191         SPECIAL, /* 0x7a */
    192         SPECIAL, /* 0x7b */
    193         SPECIAL, /* 0x7c */
    194         SPECIAL, /* 0x7d */
    195         SPECIAL, /* 0x7e */
    196         SPECIAL, /* 0x7f */     
     147        U_SPECIAL,      /* 0x3a - CapsLock */
     148        U_SPECIAL,      /* 0x3b - F1 */
     149        U_SPECIAL,      /* 0x3c - F2 */
     150        U_SPECIAL,      /* 0x3d - F3 */
     151        U_SPECIAL,      /* 0x3e - F4 */
     152        U_SPECIAL,      /* 0x3f - F5 */
     153        U_SPECIAL,      /* 0x40 - F6 */
     154        U_SPECIAL,      /* 0x41 - F7 */
     155        U_SPECIAL,      /* 0x42 - F8 */
     156        U_SPECIAL,      /* 0x43 - F9 */
     157        U_SPECIAL,      /* 0x44 - F10 */
     158        U_SPECIAL,      /* 0x45 - NumLock */
     159        U_SPECIAL,      /* 0x46 - ScrollLock */
     160       
     161        U_HOME_ARROW,   /* 0x47 - Home */
     162        U_UP_ARROW,     /* 0x48 - Up Arrow */
     163        U_PAGE_UP,      /* 0x49 - Page Up */
     164        '-',
     165        U_LEFT_ARROW,   /* 0x4b - Left Arrow */
     166        '5',            /* 0x4c - Numpad Center */
     167        U_RIGHT_ARROW,  /* 0x4d - Right Arrow */
     168        '+',
     169        U_END_ARROW,    /* 0x4f - End */
     170        U_DOWN_ARROW,   /* 0x50 - Down Arrow */
     171        U_PAGE_DOWN,    /* 0x51 - Page Down */
     172        '0',            /* 0x52 - Numpad Insert */
     173        U_DELETE,       /* 0x53 - Delete */
     174        U_SPECIAL,      /* 0x54 - Alt-SysRq */
     175        U_SPECIAL,      /* 0x55 - F11/F12/PF1/FN */
     176        U_SPECIAL,      /* 0x56 - unlabelled key next to LAlt */
     177        U_SPECIAL,      /* 0x57 - F11 */
     178        U_SPECIAL,      /* 0x58 - F12 */
     179        U_SPECIAL,      /* 0x59 */
     180        U_SPECIAL,      /* 0x5a */
     181        U_SPECIAL,      /* 0x5b */
     182        U_SPECIAL,      /* 0x5c */
     183        U_SPECIAL,      /* 0x5d */
     184        U_SPECIAL,      /* 0x5e */
     185        U_SPECIAL,      /* 0x5f */
     186        U_SPECIAL,      /* 0x60 */
     187        U_SPECIAL,      /* 0x61 */
     188        U_SPECIAL,      /* 0x62 */
     189        U_SPECIAL,      /* 0x63 */
     190        U_SPECIAL,      /* 0x64 */
     191        U_SPECIAL,      /* 0x65 */
     192        U_SPECIAL,      /* 0x66 */
     193        U_SPECIAL,      /* 0x67 */
     194        U_SPECIAL,      /* 0x68 */
     195        U_SPECIAL,      /* 0x69 */
     196        U_SPECIAL,      /* 0x6a */
     197        U_SPECIAL,      /* 0x6b */
     198        U_SPECIAL,      /* 0x6c */
     199        U_SPECIAL,      /* 0x6d */
     200        U_SPECIAL,      /* 0x6e */
     201        U_SPECIAL,      /* 0x6f */
     202        U_SPECIAL,      /* 0x70 */
     203        U_SPECIAL,      /* 0x71 */
     204        U_SPECIAL,      /* 0x72 */
     205        U_SPECIAL,      /* 0x73 */
     206        U_SPECIAL,      /* 0x74 */
     207        U_SPECIAL,      /* 0x75 */
     208        U_SPECIAL,      /* 0x76 */
     209        U_SPECIAL,      /* 0x77 */
     210        U_SPECIAL,      /* 0x78 */
     211        U_SPECIAL,      /* 0x79 */
     212        U_SPECIAL,      /* 0x7a */
     213        U_SPECIAL,      /* 0x7b */
     214        U_SPECIAL,      /* 0x7c */
     215        U_SPECIAL,      /* 0x7d */
     216        U_SPECIAL,      /* 0x7e */
     217        U_SPECIAL       /* 0x7f */
    197218};
    198219
Note: See TracChangeset for help on using the changeset viewer.