root / lab4 / .minix-src / include / minix / keymap.h @ 14
History | View | Annotate | Download (4.41 KB)
1 |
/* keymap.h - defines for keymapping Author: Marcus Hampel
|
---|---|
2 |
*/
|
3 |
#ifndef _SYS__KEYMAP_H
|
4 |
#define _SYS__KEYMAP_H
|
5 |
|
6 |
#define K(k) [INPUT_KEY_ ## k] /* Map to key entry */ |
7 |
|
8 |
#define C(c) ((c) & 0x1F) /* Map to control code */ |
9 |
#define A(c) ((c) | 0x80) /* Set eight bit (ALT) */ |
10 |
#define CA(c) A(C(c)) /* Control-Alt */ |
11 |
#define N(c) ((c) | HASNUM) /* Add "Num Lock has effect" attribute */ |
12 |
#define L(c) ((c) | HASCAPS) /* Add "Caps Lock has effect" attribute */ |
13 |
|
14 |
#define EXT 0x0100 /* Normal function keys */ |
15 |
#define CTRLKEY 0x0200 /* Control key */ |
16 |
#define SHIFT 0x0400 /* Shift key */ |
17 |
#define ALT 0x0800 /* Alternate key */ |
18 |
#define HASNUM 0x4000 /* Num Lock has effect */ |
19 |
#define HASCAPS 0x8000 /* Caps Lock has effect */ |
20 |
|
21 |
/* The left and right versions for the actual keys in the keymap. */
|
22 |
#define LCTRL CTRLKEY
|
23 |
#define RCTRL (CTRLKEY | EXT)
|
24 |
#define LSHIFT SHIFT
|
25 |
#define RSHIFT (SHIFT | EXT)
|
26 |
#define LALT ALT
|
27 |
#define RALT (ALT | EXT)
|
28 |
|
29 |
/* Delete key */
|
30 |
#define DEL 0177 |
31 |
|
32 |
/* Numeric keypad */
|
33 |
#define HOME (0x01 + EXT) |
34 |
#define END (0x02 + EXT) |
35 |
#define UP (0x03 + EXT) |
36 |
#define DOWN (0x04 + EXT) |
37 |
#define LEFT (0x05 + EXT) |
38 |
#define RIGHT (0x06 + EXT) |
39 |
#define PGUP (0x07 + EXT) |
40 |
#define PGDN (0x08 + EXT) |
41 |
#define MID (0x09 + EXT) |
42 |
/* UNUSED (0x0A + EXT) */
|
43 |
/* UNUSED (0x0B + EXT) */
|
44 |
#define INSRT (0x0C + EXT) |
45 |
|
46 |
/* Keys affected by Num Lock */
|
47 |
#define NHOME N(HOME)
|
48 |
#define NEND N(END)
|
49 |
#define NUP N(UP)
|
50 |
#define NDOWN N(DOWN)
|
51 |
#define NLEFT N(LEFT)
|
52 |
#define NRIGHT N(RIGHT)
|
53 |
#define NPGUP N(PGUP)
|
54 |
#define NPGDN N(PGDN)
|
55 |
#define NMID N(MID)
|
56 |
#define NINSRT N(INSRT)
|
57 |
#define NDEL N(DEL)
|
58 |
|
59 |
/* Alt + Numeric keypad */
|
60 |
#define AHOME (0x01 + ALT) |
61 |
#define AEND (0x02 + ALT) |
62 |
#define AUP (0x03 + ALT) |
63 |
#define ADOWN (0x04 + ALT) |
64 |
#define ALEFT (0x05 + ALT) |
65 |
#define ARIGHT (0x06 + ALT) |
66 |
#define APGUP (0x07 + ALT) |
67 |
#define APGDN (0x08 + ALT) |
68 |
#define AMID (0x09 + ALT) |
69 |
#define AMIN (0x0A + ALT) |
70 |
#define APLUS (0x0B + ALT) |
71 |
#define AINSRT (0x0C + ALT) |
72 |
|
73 |
/* Ctrl + Numeric keypad */
|
74 |
#define CHOME (0x01 + CTRLKEY) |
75 |
#define CEND (0x02 + CTRLKEY) |
76 |
#define CUP (0x03 + CTRLKEY) |
77 |
#define CDOWN (0x04 + CTRLKEY) |
78 |
#define CLEFT (0x05 + CTRLKEY) |
79 |
#define CRIGHT (0x06 + CTRLKEY) |
80 |
#define CPGUP (0x07 + CTRLKEY) |
81 |
#define CPGDN (0x08 + CTRLKEY) |
82 |
#define CMID (0x09 + CTRLKEY) |
83 |
#define CNMIN (0x0A + CTRLKEY) |
84 |
#define CPLUS (0x0B + CTRLKEY) |
85 |
#define CINSRT (0x0C + CTRLKEY) |
86 |
|
87 |
/* Lock keys */
|
88 |
#define CALOCK (0x0D + EXT) /* caps lock */ |
89 |
#define NLOCK (0x0E + EXT) /* number lock */ |
90 |
#define SLOCK (0x0F + EXT) /* scroll lock */ |
91 |
|
92 |
/* Function keys */
|
93 |
#define F1 (0x10 + EXT) |
94 |
#define F2 (0x11 + EXT) |
95 |
#define F3 (0x12 + EXT) |
96 |
#define F4 (0x13 + EXT) |
97 |
#define F5 (0x14 + EXT) |
98 |
#define F6 (0x15 + EXT) |
99 |
#define F7 (0x16 + EXT) |
100 |
#define F8 (0x17 + EXT) |
101 |
#define F9 (0x18 + EXT) |
102 |
#define F10 (0x19 + EXT) |
103 |
#define F11 (0x1A + EXT) |
104 |
#define F12 (0x1B + EXT) |
105 |
|
106 |
/* Alt+Fn */
|
107 |
#define AF1 (0x10 + ALT) |
108 |
#define AF2 (0x11 + ALT) |
109 |
#define AF3 (0x12 + ALT) |
110 |
#define AF4 (0x13 + ALT) |
111 |
#define AF5 (0x14 + ALT) |
112 |
#define AF6 (0x15 + ALT) |
113 |
#define AF7 (0x16 + ALT) |
114 |
#define AF8 (0x17 + ALT) |
115 |
#define AF9 (0x18 + ALT) |
116 |
#define AF10 (0x19 + ALT) |
117 |
#define AF11 (0x1A + ALT) |
118 |
#define AF12 (0x1B + ALT) |
119 |
|
120 |
/* Ctrl+Fn */
|
121 |
#define CF1 (0x10 + CTRLKEY) |
122 |
#define CF2 (0x11 + CTRLKEY) |
123 |
#define CF3 (0x12 + CTRLKEY) |
124 |
#define CF4 (0x13 + CTRLKEY) |
125 |
#define CF5 (0x14 + CTRLKEY) |
126 |
#define CF6 (0x15 + CTRLKEY) |
127 |
#define CF7 (0x16 + CTRLKEY) |
128 |
#define CF8 (0x17 + CTRLKEY) |
129 |
#define CF9 (0x18 + CTRLKEY) |
130 |
#define CF10 (0x19 + CTRLKEY) |
131 |
#define CF11 (0x1A + CTRLKEY) |
132 |
#define CF12 (0x1B + CTRLKEY) |
133 |
|
134 |
/* Shift+Fn */
|
135 |
#define SF1 (0x10 + SHIFT) |
136 |
#define SF2 (0x11 + SHIFT) |
137 |
#define SF3 (0x12 + SHIFT) |
138 |
#define SF4 (0x13 + SHIFT) |
139 |
#define SF5 (0x14 + SHIFT) |
140 |
#define SF6 (0x15 + SHIFT) |
141 |
#define SF7 (0x16 + SHIFT) |
142 |
#define SF8 (0x17 + SHIFT) |
143 |
#define SF9 (0x18 + SHIFT) |
144 |
#define SF10 (0x19 + SHIFT) |
145 |
#define SF11 (0x1A + SHIFT) |
146 |
#define SF12 (0x1B + SHIFT) |
147 |
|
148 |
/* Alt+Shift+Fn */
|
149 |
#define ASF1 (0x10 + ALT + SHIFT) |
150 |
#define ASF2 (0x11 + ALT + SHIFT) |
151 |
#define ASF3 (0x12 + ALT + SHIFT) |
152 |
#define ASF4 (0x13 + ALT + SHIFT) |
153 |
#define ASF5 (0x14 + ALT + SHIFT) |
154 |
#define ASF6 (0x15 + ALT + SHIFT) |
155 |
#define ASF7 (0x16 + ALT + SHIFT) |
156 |
#define ASF8 (0x17 + ALT + SHIFT) |
157 |
#define ASF9 (0x18 + ALT + SHIFT) |
158 |
#define ASF10 (0x19 + ALT + SHIFT) |
159 |
#define ASF11 (0x1A + ALT + SHIFT) |
160 |
#define ASF12 (0x1B + ALT + SHIFT) |
161 |
|
162 |
#define MAP_COLS 6 /* Number of columns in keymap */ |
163 |
#define NR_SCAN_CODES 0xE8 /* Number of scan codes (rows in keymap) */ |
164 |
|
165 |
typedef uint16_t keymap_t[NR_SCAN_CODES][MAP_COLS];
|
166 |
|
167 |
#define KEY_MAGIC "KMAZ" /* Magic number of keymap file */ |
168 |
|
169 |
#endif /* _SYS__KEYMAP_H */ |