custom message for SHMGET
[minix3.git] / include / minix / input.h
blobf819294a6aaa070fc53720582089a76460ce122d
1 #ifndef _MINIX_INPUT_H
2 #define _MINIX_INPUT_H
4 #include <sys/types.h>
6 #ifdef _SYSTEM
8 /* Device type. */
9 #define INPUT_DEV_KBD 0x01 /* keyboard device */
10 #define INPUT_DEV_MOUSE 0x02 /* mouse device */
12 /* Known-invalid input device ID. */
13 #define INVALID_INPUT_ID (-1)
15 #endif /* _SYSTEM */
18 * The input server heavily draws on the USB HID specification for events.
19 * Every driver should convert its event codes into this format. This also
20 * implies that we use the U.S. keyboard layout for key events. The mapping to
21 * localized keyboard layouts will be done at a different place (TTY, Xserver).
24 /* A single event, as read from one of the input devices. */
25 struct input_event {
26 uint16_t page; /* event page (INPUT_PAGE_) */
27 uint16_t code; /* page-specific event code */
28 int32_t value; /* event value */
29 uint16_t flags; /* event flags (INPUT_FLAG_) */
30 uint16_t devid; /* identifier of source device */
31 uint32_t rsvd[2]; /* reserved for a future timestamp */
34 /* Event pages. */
35 #define INPUT_PAGE_GD 0x0001 /* General Desktop page */
36 #define INPUT_PAGE_KEY 0x0007 /* Keyboard/Keypad page */
37 #define INPUT_PAGE_LED 0x0008 /* LED page */
38 #define INPUT_PAGE_BUTTON 0x0009 /* Button page */
39 #define INPUT_PAGE_CONS 0x000C /* Consumer page */
41 /* Event values. Not exhaustive. */
42 #define INPUT_RELEASE 0
43 #define INPUT_PRESS 1
45 /* Event flags. */
46 #define INPUT_FLAG_ABS 0x00 /* absolute value (the default) */
47 #define INPUT_FLAG_REL 0x04 /* relative value */
49 /* Page-specific event codes. */
50 enum {
51 INPUT_GD_X = 0x0030,
52 INPUT_GD_Y,
54 INPUT_GD_SYSTEM_POWER_DOWN = 0x0081,
55 INPUT_GD_SYSTEM_SLEEP,
56 INPUT_GD_SYSTEM_WAKE_UP
59 enum {
60 INPUT_KEY_A = 0x0004,
61 INPUT_KEY_B,
62 INPUT_KEY_C,
63 INPUT_KEY_D,
64 INPUT_KEY_E,
65 INPUT_KEY_F,
66 INPUT_KEY_G,
67 INPUT_KEY_H,
68 INPUT_KEY_I,
69 INPUT_KEY_J,
70 INPUT_KEY_K,
71 INPUT_KEY_L,
72 INPUT_KEY_M,
73 INPUT_KEY_N,
74 INPUT_KEY_O,
75 INPUT_KEY_P,
76 INPUT_KEY_Q,
77 INPUT_KEY_R,
78 INPUT_KEY_S,
79 INPUT_KEY_T,
80 INPUT_KEY_U,
81 INPUT_KEY_V,
82 INPUT_KEY_W,
83 INPUT_KEY_X,
84 INPUT_KEY_Y,
85 INPUT_KEY_Z,
86 INPUT_KEY_1,
87 INPUT_KEY_2,
88 INPUT_KEY_3,
89 INPUT_KEY_4,
90 INPUT_KEY_5,
91 INPUT_KEY_6,
92 INPUT_KEY_7,
93 INPUT_KEY_8,
94 INPUT_KEY_9,
95 INPUT_KEY_0,
97 INPUT_KEY_ENTER,
98 INPUT_KEY_ESCAPE,
99 INPUT_KEY_BACKSPACE,
100 INPUT_KEY_TAB,
101 INPUT_KEY_SPACEBAR,
102 INPUT_KEY_DASH,
103 INPUT_KEY_EQUAL,
104 INPUT_KEY_OPEN_BRACKET,
105 INPUT_KEY_CLOSE_BRACKET,
106 INPUT_KEY_BACKSLASH,
107 INPUT_KEY_EUROPE_1,
108 INPUT_KEY_SEMICOLON,
109 INPUT_KEY_APOSTROPH,
110 INPUT_KEY_GRAVE_ACCENT,
111 INPUT_KEY_COMMA,
112 INPUT_KEY_PERIOD,
113 INPUT_KEY_SLASH,
114 INPUT_KEY_CAPS_LOCK,
116 INPUT_KEY_F1,
117 INPUT_KEY_F2,
118 INPUT_KEY_F3,
119 INPUT_KEY_F4,
120 INPUT_KEY_F5,
121 INPUT_KEY_F6,
122 INPUT_KEY_F7,
123 INPUT_KEY_F8,
124 INPUT_KEY_F9,
125 INPUT_KEY_F10,
126 INPUT_KEY_F11,
127 INPUT_KEY_F12,
129 INPUT_KEY_PRINT_SCREEN,
130 INPUT_KEY_SCROLL_LOCK,
131 INPUT_KEY_PAUSE,
132 INPUT_KEY_INSERT,
133 INPUT_KEY_HOME,
134 INPUT_KEY_PAGE_UP,
135 INPUT_KEY_DELETE,
136 INPUT_KEY_END,
137 INPUT_KEY_PAGE_DOWN,
138 INPUT_KEY_RIGHT_ARROW,
139 INPUT_KEY_LEFT_ARROW,
140 INPUT_KEY_DOWN_ARROW,
141 INPUT_KEY_UP_ARROW,
142 INPUT_KEY_NUM_LOCK,
144 INPUT_KEY_KP_SLASH,
145 INPUT_KEY_KP_STAR,
146 INPUT_KEY_KP_DASH,
147 INPUT_KEY_KP_PLUS,
148 INPUT_KEY_KP_ENTER,
149 INPUT_KEY_KP_1,
150 INPUT_KEY_KP_2,
151 INPUT_KEY_KP_3,
152 INPUT_KEY_KP_4,
153 INPUT_KEY_KP_5,
154 INPUT_KEY_KP_6,
155 INPUT_KEY_KP_7,
156 INPUT_KEY_KP_8,
157 INPUT_KEY_KP_9,
158 INPUT_KEY_KP_0,
159 INPUT_KEY_KP_PERIOD,
161 INPUT_KEY_EUROPE_2,
162 INPUT_KEY_APPLICATION,
163 INPUT_KEY_POWER,
164 INPUT_KEY_KP_EQUAL,
166 INPUT_KEY_F13,
167 INPUT_KEY_F14,
168 INPUT_KEY_F15,
169 INPUT_KEY_F16,
170 INPUT_KEY_F17,
171 INPUT_KEY_F18,
172 INPUT_KEY_F19,
173 INPUT_KEY_F20,
174 INPUT_KEY_F21,
175 INPUT_KEY_F22,
176 INPUT_KEY_F23,
177 INPUT_KEY_F24,
179 INPUT_KEY_EXECUTE,
180 INPUT_KEY_HELP,
181 INPUT_KEY_MENU,
182 INPUT_KEY_SELECT,
183 INPUT_KEY_STOP,
184 INPUT_KEY_AGAIN,
185 INPUT_KEY_UNDO,
186 INPUT_KEY_CUT,
187 INPUT_KEY_COPY,
188 INPUT_KEY_PASTE,
189 INPUT_KEY_FIND,
190 INPUT_KEY_MUTE,
191 INPUT_KEY_VOLUME_UP,
192 INPUT_KEY_VOLUME_DOWN,
193 INPUT_KEY_LOCKING_CAPS_LOCK,
194 INPUT_KEY_LOCKING_NUM_LOCK,
195 INPUT_KEY_LOCKING_SCROLL_LOCK,
196 INPUT_KEY_KP_COMMA,
197 INPUT_KEY_EQUAL_SIGN,
198 INPUT_KEY_I10L_1,
199 INPUT_KEY_I10L_2,
200 INPUT_KEY_I10L_3,
201 INPUT_KEY_I10L_4,
202 INPUT_KEY_I10L_5,
203 INPUT_KEY_I10L_6,
204 INPUT_KEY_I10L_7,
205 INPUT_KEY_I10L_8,
206 INPUT_KEY_I10L_9,
207 INPUT_KEY_LANG_1,
208 INPUT_KEY_LANG_2,
209 INPUT_KEY_LANG_3,
210 INPUT_KEY_LANG_4,
211 INPUT_KEY_LANG_5,
212 INPUT_KEY_LANG_6,
213 INPUT_KEY_LANG_7,
214 INPUT_KEY_LANG_8,
215 INPUT_KEY_LANG_9,
216 INPUT_KEY_ALT_ERASE,
217 INPUT_KEY_SYSREQ,
218 INPUT_KEY_CANCEL,
219 INPUT_KEY_CLEAR,
220 INPUT_KEY_PRIOR,
221 INPUT_KEY_RETURN,
222 INPUT_KEY_SEPARATOR,
223 INPUT_KEY_OUT,
224 INPUT_KEY_OPER,
225 INPUT_KEY_CLEAR_AGAIN,
226 INPUT_KEY_CR_SEL,
227 INPUT_KEY_EX_SEL,
229 /* 0x00A5 -- 0x00AF RESERVED */
231 INPUT_KEY_KP_00 = 0x00B0,
232 INPUT_KEY_KP_000,
233 INPUT_KEY_THOUSANDS_SEP,
234 INPUT_KEY_DECIMAL_SEP,
235 INPUT_KEY_CURRENCY_UNIT,
236 INPUT_KEY_CURRENCY_SUBUNIT,
237 INPUT_KEY_KP_OPEN_PARENTHESIS,
238 INPUT_KEY_KP_CLOSE_PARENTHESIS,
239 INPUT_KEY_KP_OPEN_BRACE,
240 INPUT_KEY_KP_CLOSE_BRACE,
241 INPUT_KEY_KP_TAB,
242 INPUT_KEY_KP_BACKSPACE,
243 INPUT_KEY_KP_A,
244 INPUT_KEY_KP_B,
245 INPUT_KEY_KP_C,
246 INPUT_KEY_KP_D,
247 INPUT_KEY_KP_E,
248 INPUT_KEY_KP_F,
249 INPUT_KEY_KP_XOR,
250 INPUT_KEY_KP_CARET,
251 INPUT_KEY_KP_PERCENT,
252 INPUT_KEY_KP_SMALLER_THEN,
253 INPUT_KEY_KP_GREATER_THEN,
254 INPUT_KEY_KP_AMP,
255 INPUT_KEY_KP_DOUBLE_AMP,
256 INPUT_KEY_KP_PIPE,
257 INPUT_KEY_KP_DOUBLE_PIPE,
258 INPUT_KEY_KP_COLON,
259 INPUT_KEY_KP_NUMBER,
260 INPUT_KEY_KP_SPACE,
261 INPUT_KEY_KP_AT,
262 INPUT_KEY_KP_EXCLAMATION_MARK,
263 INPUT_KEY_KP_MEM_STORE,
264 INPUT_KEY_KP_MEM_RECALL,
265 INPUT_KEY_KP_MEM_CLEAR,
266 INPUT_KEY_KP_MEM_ADD,
267 INPUT_KEY_KP_MEM_SUBTRACT,
268 INPUT_KEY_KP_MEM_MULTIPLY,
269 INPUT_KEY_KP_MEM_DIVIDE,
270 INPUT_KEY_KP_PLUS_MINUS,
271 INPUT_KEY_KP_CLEAR,
272 INPUT_KEY_KP_CLEAR_ENTRY,
273 INPUT_KEY_KP_BIN,
274 INPUT_KEY_KP_OCT,
275 INPUT_KEY_KP_DEC,
276 INPUT_KEY_KP_HEX,
278 /* 0x00DE, 0x00DF RESERVED */
280 INPUT_KEY_LEFT_CTRL = 0x00E0,
281 INPUT_KEY_LEFT_SHIFT,
282 INPUT_KEY_LEFT_ALT,
283 INPUT_KEY_LEFT_GUI,
284 INPUT_KEY_RIGHT_CTRL,
285 INPUT_KEY_RIGHT_SHIFT,
286 INPUT_KEY_RIGHT_ALT,
287 INPUT_KEY_RIGHT_GUI
289 /* 0x00E8 -- 0xFFFF RESERVED */
292 enum {
293 INPUT_LED_NUMLOCK = 0x0001,
294 INPUT_LED_CAPSLOCK,
295 INPUT_LED_SCROLLLOCK
298 enum {
299 INPUT_BUTTON_1 = 0x0001,
302 enum {
303 INPUT_CONS_SCAN_NEXT_TRACK = 0x00B5,
304 INPUT_CONS_SCAN_PREVIOUS_TRACK,
305 INPUT_CONS_STOP,
307 INPUT_CONS_PLAY_PAUSE = 0x00CD,
309 INPUT_CONS_MUTE = 0x00E2,
311 INPUT_CONS_VOLUME_UP = 0x00E9,
312 INPUT_CONS_VOLUME_DOWN,
314 INPUT_CONS_AL_MEDIA_SELECT = 0x0183,
316 INPUT_CONS_AL_EMAIL_READER = 0x018A,
318 INPUT_CONS_AL_CALCULATOR = 0x0192,
320 INPUT_CONS_AL_LOCAL_BROWSER = 0x0194,
322 INPUT_CONS_AC_SEARCH = 0x0221,
323 INPUT_CONS_AC_GO_TO,
324 INPUT_CONS_AC_HOME,
325 INPUT_CONS_AC_BACK,
326 INPUT_CONS_AC_FORWARD,
327 INPUT_CONS_AC_STOP,
328 INPUT_CONS_AC_REFRESH,
330 INPUT_CONS_AC_BOOKMARKS = 0x022A
333 #endif