1 /*-
2 * Copyright (c) 1991-1996 Søren Schmidt
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer
10 * in this position and unchanged.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * 3. The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 * $FreeBSD$
29 */
30
31 #ifndef _MACHINE_CONSOLE_H_
32 #define _MACHINE_CONSOLE_H_
33
34 #ifndef KERNEL
35 #include <sys/types.h>
36 #endif
37 #include <sys/ioccom.h>
38
39 #define KDGKBMODE _IOR('K', 6, int)
40 #define KDSKBMODE _IO('K', 7 /*, int */)
41 #define KDMKTONE _IO('K', 8 /*, int */)
42 #define KDGETMODE _IOR('K', 9, int)
43 #define KDSETMODE _IO('K', 10 /*, int */)
44 #define KDSBORDER _IO('K', 13 /*, int */)
45 #define KDGKBSTATE _IOR('K', 19, int)
46 #define KDSKBSTATE _IO('K', 20 /*, int */)
47 #define KDENABIO _IO('K', 60)
48 #define KDDISABIO _IO('K', 61)
49 #define KIOCSOUND _IO('K', 63 /*, int */)
50 #define KDGKBTYPE _IOR('K', 64, int)
51 #define KDGETLED _IOR('K', 65, int)
52 #define KDSETLED _IO('K', 66 /*, int */)
53 #define KDSETRAD _IO('K', 67 /*, int */) /* obsolete */
54 #define KDRASTER _IOW('K', 100, scr_size_t)
55 #define KDGKBINFO _IOR('K', 101, keyboard_info_t)
56 #define KDSETREPEAT _IOW('K', 102, keyboard_delay_t)
57 #define KDGETREPEAT _IOR('K', 103, keyboard_delay_t)
58
59 #define GETFKEY _IOWR('k', 0, fkeyarg_t)
60 #define SETFKEY _IOWR('k', 1, fkeyarg_t)
61 #define GIO_SCRNMAP _IOR('k', 2, scrmap_t)
62 #define PIO_SCRNMAP _IOW('k', 3, scrmap_t)
63 #define GIO_KEYMAP _IOR('k', 6, keymap_t)
64 #define PIO_KEYMAP _IOW('k', 7, keymap_t)
65 #define GIO_DEADKEYMAP _IOR('k', 8, accentmap_t)
66 #define PIO_DEADKEYMAP _IOW('k', 9, accentmap_t)
67 #define GIO_KEYMAPENT _IOWR('k', 10, keyarg_t)
68 #define PIO_KEYMAPENT _IOW('k', 11, keyarg_t)
69
70 #define GIO_ATTR _IOR('a', 0, int)
71 #define GIO_COLOR _IOR('c', 0, int)
72 #define CONS_CURRENT _IOR('c', 1, int)
73 #define CONS_GET _IOR('c', 2, int)
74 #define CONS_IO _IO('c', 3)
75 #define CONS_BLANKTIME _IOW('c', 4, int)
76 #define CONS_SSAVER _IOW('c', 5, ssaver_t)
77 #define CONS_GSAVER _IOWR('c', 6, ssaver_t)
78 #define CONS_CURSORTYPE _IOW('c', 7, int)
79 #define CONS_BELLTYPE _IOW('c', 8, int)
80 #define CONS_HISTORY _IOW('c', 9, int)
81 #define CONS_MOUSECTL _IOWR('c', 10, mouse_info_t)
82 #define CONS_IDLE _IOR('c', 11, int)
83 #define CONS_SAVERMODE _IOW('c', 12, int)
84 #define CONS_SAVERSTART _IOW('c', 13, int)
85 #define PIO_FONT8x8 _IOW('c', 64, fnt8_t)
86 #define GIO_FONT8x8 _IOR('c', 65, fnt8_t)
87 #define PIO_FONT8x14 _IOW('c', 66, fnt14_t)
88 #define GIO_FONT8x14 _IOR('c', 67, fnt14_t)
89 #define PIO_FONT8x16 _IOW('c', 68, fnt16_t)
90 #define GIO_FONT8x16 _IOR('c', 69, fnt16_t)
91 #define CONS_GETINFO _IOWR('c', 73, vid_info_t)
92 #define CONS_GETVERS _IOR('c', 74, int)
93 #define CONS_CURRENTADP _IOR('c', 100, int)
94 #define CONS_ADPINFO _IOWR('c', 101, video_adapter_info_t)
95 #define CONS_MODEINFO _IOWR('c', 102, video_info_t)
96 #define CONS_FINDMODE _IOWR('c', 103, video_info_t)
97 #define CONS_SETWINORG _IO('c', 104 /* u_int */)
98
99 #define CONS_SETKBD _IO('c', 110 /* int */)
100 #define CONS_RELKBD _IO('c', 111)
101
102 /* CONS_SAVERMODE */
103 #define CONS_LKM_SAVER 0
104 #define CONS_USR_SAVER 1
105
106 #ifdef PC98
107 #define ADJUST_CLOCK _IO('t',100) /* for 98note resume */
108 #endif
109
110 #define VT_OPENQRY _IOR('v', 1, int)
111 #define VT_SETMODE _IOW('v', 2, vtmode_t)
112 #define VT_GETMODE _IOR('v', 3, vtmode_t)
113 #define VT_RELDISP _IO('v', 4 /*, int */)
114 #define VT_ACTIVATE _IO('v', 5 /*, int */)
115 #define VT_WAITACTIVE _IO('v', 6 /*, int */)
116 #define VT_GETACTIVE _IOR('v', 7, int)
117
118 #define VT_FALSE 0
119 #define VT_TRUE 1
120 #define VT_ACKACQ 2
121
122 #define VT_AUTO 0 /* switching is automatic */
123 #define VT_PROCESS 1 /* switching controlled by prog */
124 #define VT_KERNEL 255 /* switching controlled in kernel */
125
126 #ifndef _VT_MODE_DECLARED
127 #define _VT_MODE_DECLARED
128 struct vt_mode {
129 char mode;
130 char waitv; /* not implemented yet SOS */
131 short relsig;
132 short acqsig;
133 short frsig; /* not implemented yet SOS */
134 };
135
136 typedef struct vt_mode vtmode_t;
137 #endif /* !_VT_MODE_DECLARED */
138
139 struct mouse_data {
140 int x;
141 int y;
142 int z;
143 int buttons;
144 };
145
146 struct mouse_mode {
147 int mode;
148 int signal;
149 };
150
151 struct mouse_event {
152 int id; /* one based */
153 int value;
154 };
155
156 #define MOUSE_SHOW 0x01
157 #define MOUSE_HIDE 0x02
158 #define MOUSE_MOVEABS 0x03
159 #define MOUSE_MOVEREL 0x04
160 #define MOUSE_GETINFO 0x05
161 #define MOUSE_MODE 0x06
162 #define MOUSE_ACTION 0x07
163 #define MOUSE_MOTION_EVENT 0x08
164 #define MOUSE_BUTTON_EVENT 0x09
165 #define MOUSE_MOUSECHAR 0x0a
166
167 struct mouse_info {
168 int operation;
169 union {
170 struct mouse_data data;
171 struct mouse_mode mode;
172 struct mouse_event event;
173 int mouse_char;
174 }u;
175 };
176
177 #define KD_MONO 1 /* monochrome adapter */
178 #define KD_HERCULES 2 /* hercules adapter */
179 #define KD_CGA 3 /* color graphics adapter */
180 #define KD_EGA 4 /* enhanced graphics adapter */
181 #define KD_VGA 5 /* video graphics adapter */
182 #define KD_PC98 6 /* PC-98 display */
183
184 #define KD_TEXT 0 /* set text mode restore fonts */
185 #define KD_TEXT0 0 /* ditto */
186 #define KD_TEXT1 2 /* set text mode !restore fonts */
187 #define KD_GRAPHICS 1 /* set graphics mode */
188 #define KD_PIXEL 3 /* set pixel mode */
189
190 #define K_RAW 0 /* keyboard returns scancodes */
191 #define K_XLATE 1 /* keyboard returns ascii */
192 #define K_CODE 2 /* keyboard returns keycodes */
193
194 #define KB_84 1 /* 'old' 84 key AT-keyboard */
195 #define KB_101 2 /* MF-101 or MF-102 keyboard */
196 #define KB_OTHER 3 /* keyboard not known */
197
198 #define CLKED 1 /* Caps locked */
199 #define NLKED 2 /* Num locked */
200 #define SLKED 4 /* Scroll locked */
201 #define ALKED 8 /* AltGr locked */
202 #define LOCK_MASK (CLKED | NLKED | SLKED | ALKED)
203 #define LED_CAP 1 /* Caps lock LED */
204 #define LED_NUM 2 /* Num lock LED */
205 #define LED_SCR 4 /* Scroll lock LED */
206 #define LED_MASK (LED_CAP | LED_NUM | LED_SCR)
207
208 /* possible flag values */
209 #define FLAG_LOCK_O 0
210 #define FLAG_LOCK_C 1
211 #define FLAG_LOCK_N 2
212
213 #define NUM_KEYS 256 /* number of keys in table */
214 #define NUM_STATES 8 /* states per key */
215 #define ALTGR_OFFSET 128 /* offset for altlock keys */
216
217 #ifndef _KEYMAP_DECLARED
218 #define _KEYMAP_DECLARED
219 struct keyent_t {
220 u_char map[NUM_STATES];
221 u_char spcl;
222 u_char flgs;
223 };
224
225 struct keymap {
226 u_short n_keys;
227 struct keyent_t key[NUM_KEYS];
228 };
229
230 typedef struct keymap keymap_t;
231
232 struct keyarg {
233 u_short keynum;
234 struct keyent_t key;
235 };
236
237 typedef struct keyarg keyarg_t;
238 #endif /* !_KEYMAP_DECLARED */
239
240 #define NUM_DEADKEYS 15 /* number of accent keys */
241 #define NUM_ACCENTCHARS 52 /* max number of accent chars */
242
243 struct acc_t {
244 u_char accchar;
245 u_char map[NUM_ACCENTCHARS][2];
246 };
247
248 struct accentmap {
249 u_short n_accs;
250 struct acc_t acc[NUM_DEADKEYS];
251 };
252
253 #define MAXFK 16
254 #define NUM_FKEYS 96
255
256 struct fkeytab {
257 u_char str[MAXFK];
258 u_char len;
259 };
260
261 struct fkeyarg {
262 u_short keynum;
263 char keydef[MAXFK];
264 char flen;
265 };
266
267 struct colors {
268 char fore;
269 char back;
270 };
271
272 struct vid_info {
273 short size;
274 short m_num;
275 u_short mv_row, mv_col;
276 u_short mv_rsz, mv_csz;
277 struct colors mv_norm,
278 mv_rev,
279 mv_grfc;
280 u_char mv_ovscan;
281 u_char mk_keylock;
282 };
283
284 #define MAXSSAVER 16
285
286 struct ssaver {
287 char name[MAXSSAVER];
288 int num;
289 long time;
290 };
291
292 /* video mode information block */
293 struct video_info {
294 int vi_mode;
295 int vi_flags;
296 #define V_INFO_COLOR (1<<0)
297 #define V_INFO_GRAPHICS (1<<1)
298 #define V_INFO_LINEAR (1<<2)
299 #define V_INFO_VESA (1<<3)
300 int vi_width;
301 int vi_height;
302 int vi_cwidth;
303 int vi_cheight;
304 int vi_depth;
305 int vi_planes;
306 u_int vi_window; /* physical address */
307 size_t vi_window_size;
308 size_t vi_window_gran;
309 u_int vi_buffer; /* physical address */
310 size_t vi_buffer_size;
311 /* XXX pixel format, memory model,... */
312 };
313
314 /* adapter infromation block */
315 struct video_adapter {
316 int va_index;
317 int va_type;
318 char *va_name;
319 int va_unit;
320 int va_minor;
321 int va_flags;
322 #define V_ADP_COLOR (1<<0)
323 #define V_ADP_MODECHANGE (1<<1)
324 #define V_ADP_STATESAVE (1<<2)
325 #define V_ADP_STATELOAD (1<<3)
326 #define V_ADP_FONT (1<<4)
327 #define V_ADP_PALETTE (1<<5)
328 #define V_ADP_BORDER (1<<6)
329 #define V_ADP_VESA (1<<7)
330 #define V_ADP_PROBED (1<<16)
331 #define V_ADP_INITIALIZED (1<<17)
332 #define V_ADP_REGISTERED (1<<18)
333 int va_io_base;
334 int va_io_size;
335 int va_crtc_addr;
336 int va_mem_base;
337 int va_mem_size;
338 u_int va_window; /* virtual address */
339 size_t va_window_size;
340 size_t va_window_gran;
341 u_int va_buffer; /* virtual address */
342 size_t va_buffer_size;
343 int va_initial_mode;
344 int va_initial_bios_mode;
345 int va_mode;
346 struct video_info va_info;
347 int va_line_width;
348 void *va_token;
349 };
350
351 struct video_adapter_info {
352 int va_index;
353 int va_type;
354 char va_name[16];
355 int va_unit;
356 int va_flags;
357 int va_io_base;
358 int va_io_size;
359 int va_crtc_addr;
360 int va_mem_base;
361 int va_mem_size;
362 u_int va_window; /* virtual address */
363 size_t va_window_size;
364 size_t va_window_gran;
365 u_int va_buffer; /* virtual address */
366 size_t va_buffer_size;
367 int va_initial_mode;
368 int va_initial_bios_mode;
369 int va_mode;
370 int va_line_width;
371 };
372
373 #define V_ADP_PRIMARY 0
374 #define V_ADP_SECONDARY 1
375
376 struct keyboard_info {
377 int kb_index; /* kbdio index# */
378 char kb_name[16]; /* driver name */
379 int kb_unit; /* unit# */
380 int kb_type; /* KB_84, KB_101, KB_OTHER,... */
381 int kb_config; /* device configuration flags */
382 int kb_flags; /* internal flags */
383 };
384
385 typedef struct accentmap accentmap_t;
386 typedef struct fkeytab fkeytab_t;
387 typedef struct fkeyarg fkeyarg_t;
388 typedef struct vid_info vid_info_t;
389 typedef struct mouse_info mouse_info_t;
390 typedef struct {char scrmap[256];} scrmap_t;
391 typedef struct {char fnt8x8[8*256];} fnt8_t;
392 typedef struct {char fnt8x14[14*256];} fnt14_t;
393 typedef struct {char fnt8x16[16*256];} fnt16_t;
394 typedef struct ssaver ssaver_t;
395 typedef struct video_adapter video_adapter_t;
396 typedef struct video_adapter_info video_adapter_info_t;
397 typedef struct video_info video_info_t;
398 typedef struct keyboard_info keyboard_info_t;
399 typedef struct {int scr_size[3];} scr_size_t;
400 typedef struct {int kbd_delay[2];} keyboard_delay_t;
401
402 /* defines for "special" keys (spcl bit set in keymap) */
403 #define NOP 0x00 /* nothing (dead key) */
404 #define LSH 0x02 /* left shift key */
405 #define RSH 0x03 /* right shift key */
406 #define CLK 0x04 /* caps lock key */
407 #define NLK 0x05 /* num lock key */
408 #define SLK 0x06 /* scroll lock key */
409 #define LALT 0x07 /* left alt key */
410 #define BTAB 0x08 /* backwards tab */
411 #define LCTR 0x09 /* left control key */
412 #define NEXT 0x0a /* switch to next screen */
413 #define F_SCR 0x0b /* switch to first screen */
414 #define L_SCR 0x1a /* switch to last screen */
415 #define F_FN 0x1b /* first function key */
416 #define L_FN 0x7a /* last function key */
417 /* 0x7b-0x7f reserved do not use ! */
418 #define RCTR 0x80 /* right control key */
419 #define RALT 0x81 /* right alt (altgr) key */
420 #define ALK 0x82 /* alt lock key */
421 #define ASH 0x83 /* alt shift key */
422 #define META 0x84 /* meta key */
423 #define RBT 0x85 /* boot machine */
424 #define DBG 0x86 /* call debugger */
425 #define SUSP 0x87 /* suspend power (APM) */
426 #define SPSC 0x88 /* toggle splash/text screen */
427
428 #define F_ACC DGRA /* first accent key */
429 #define DGRA 0x89 /* grave */
430 #define DACU 0x8a /* acute */
431 #define DCIR 0x8b /* circumflex */
432 #define DTIL 0x8c /* tilde */
433 #define DMAC 0x8d /* macron */
434 #define DBRE 0x8e /* breve */
435 #define DDOT 0x8f /* dot */
436 #define DUML 0x90 /* umlaut/diaresis */
437 #define DDIA 0x90 /* diaresis */
438 #define DSLA 0x91 /* slash */
439 #define DRIN 0x92 /* ring */
440 #define DCED 0x93 /* cedilla */
441 #define DAPO 0x94 /* apostrophe */
442 #define DDAC 0x95 /* double acute */
443 #define DOGO 0x96 /* ogonek */
444 #define DCAR 0x97 /* caron */
445 #define L_ACC DCAR /* last accent key */
446
447 #define STBY 0x98 /* Go into standby mode (apm) */
448
449 #define F(x) ((x)+F_FN-1)
450 #define S(x) ((x)+F_SCR-1)
451 #define ACC(x) ((x)+F_ACC)
452 #define NOKEY 0x100 /* no key pressed marker */
453 #define FKEY 0x200 /* function key marker */
454 #define MKEY 0x400 /* meta key marker (prepend ESC)*/
455 #define BKEY 0x800 /* backtab (ESC [ Z) */
456
457 #define SPCLKEY 0x8000 /* special key */
458 #define RELKEY 0x4000 /* key released */
459 #define ERRKEY 0x2000 /* error */
460
461 #define KEYCHAR(c) ((c) & 0x00ff)
462 #define KEYFLAGS(c) ((c) & ~0x00ff)
463
464 /* video mode definitions */
465 #define M_B40x25 0 /* black & white 40 columns */
466 #define M_C40x25 1 /* color 40 columns */
467 #define M_B80x25 2 /* black & white 80 columns */
468 #define M_C80x25 3 /* color 80 columns */
469 #define M_BG320 4 /* black & white graphics 320x200 */
470 #define M_CG320 5 /* color graphics 320x200 */
471 #define M_BG640 6 /* black & white graphics 640x200 hi-res */
472 #define M_EGAMONO80x25 7 /* ega-mono 80x25 */
473 #define M_CG320_D 13 /* ega mode D */
474 #define M_CG640_E 14 /* ega mode E */
475 #define M_EGAMONOAPA 15 /* ega mode F */
476 #define M_CG640x350 16 /* ega mode 10 */
477 #define M_ENHMONOAPA2 17 /* ega mode F with extended memory */
478 #define M_ENH_CG640 18 /* ega mode 10* */
479 #define M_ENH_B40x25 19 /* ega enhanced black & white 40 columns */
480 #define M_ENH_C40x25 20 /* ega enhanced color 40 columns */
481 #define M_ENH_B80x25 21 /* ega enhanced black & white 80 columns */
482 #define M_ENH_C80x25 22 /* ega enhanced color 80 columns */
483 #define M_VGA_C40x25 23 /* vga 8x16 font on color */
484 #define M_VGA_C80x25 24 /* vga 8x16 font on color */
485 #define M_VGA_M80x25 25 /* vga 8x16 font on mono */
486
487 #define M_VGA11 26 /* vga 640x480 2 colors */
488 #define M_BG640x480 26
489 #define M_VGA12 27 /* vga 640x480 16 colors */
490 #define M_CG640x480 27
491 #define M_VGA13 28 /* vga 640x200 256 colors */
492 #define M_VGA_CG320 28
493
494 #define M_VGA_C80x50 30 /* vga 8x8 font on color */
495 #define M_VGA_M80x50 31 /* vga 8x8 font on color */
496 #define M_VGA_C80x30 32 /* vga 8x16 font on color */
497 #define M_VGA_M80x30 33 /* vga 8x16 font on color */
498 #define M_VGA_C80x60 34 /* vga 8x8 font on color */
499 #define M_VGA_M80x60 35 /* vga 8x8 font on color */
500 #define M_VGA_CG640 36 /* vga 640x400 256 color */
501 #define M_VGA_MODEX 37 /* vga 320x240 256 color */
502
503 #define M_ENH_B80x43 0x70 /* ega black & white 80x43 */
504 #define M_ENH_C80x43 0x71 /* ega color 80x43 */
505
506 #define M_PC98_80x25 98 /* PC98 80x25 */
507 #define M_PC98_80x30 99 /* PC98 80x30 */
508
509 #define M_HGC_P0 0xe0 /* hercules graphics - page 0 @ B0000 */
510 #define M_HGC_P1 0xe1 /* hercules graphics - page 1 @ B8000 */
511 #define M_MCA_MODE 0xff /* monochrome adapter mode */
512
513 #define M_TEXT_80x25 200 /* generic text modes */
514 #define M_TEXT_80x30 201
515 #define M_TEXT_80x43 202
516 #define M_TEXT_80x50 203
517 #define M_TEXT_80x60 204
518 #define M_TEXT_132x25 205
519 #define M_TEXT_132x30 206
520 #define M_TEXT_132x43 207
521 #define M_TEXT_132x50 208
522 #define M_TEXT_132x60 209
523
524 #define SW_PC98_80x25 _IO('S', M_PC98_80x25)
525 #define SW_PC98_80x30 _IO('S', M_PC98_80x30)
526 #define SW_B40x25 _IO('S', M_B40x25)
527 #define SW_C40x25 _IO('S', M_C40x25)
528 #define SW_B80x25 _IO('S', M_B80x25)
529 #define SW_C80x25 _IO('S', M_C80x25)
530 #define SW_BG320 _IO('S', M_BG320)
531 #define SW_CG320 _IO('S', M_CG320)
532 #define SW_BG640 _IO('S', M_BG640)
533 #define SW_EGAMONO80x25 _IO('S', M_EGAMONO80x25)
534 #define SW_CG320_D _IO('S', M_CG320_D)
535 #define SW_CG640_E _IO('S', M_CG640_E)
536 #define SW_EGAMONOAPA _IO('S', M_EGAMONOAPA)
537 #define SW_CG640x350 _IO('S', M_CG640x350)
538 #define SW_ENH_MONOAPA2 _IO('S', M_ENHMONOAPA2)
539 #define SW_ENH_CG640 _IO('S', M_ENH_CG640)
540 #define SW_ENH_B40x25 _IO('S', M_ENH_B40x25)
541 #define SW_ENH_C40x25 _IO('S', M_ENH_C40x25)
542 #define SW_ENH_B80x25 _IO('S', M_ENH_B80x25)
543 #define SW_ENH_C80x25 _IO('S', M_ENH_C80x25)
544 #define SW_ENH_B80x43 _IO('S', M_ENH_B80x43)
545 #define SW_ENH_C80x43 _IO('S', M_ENH_C80x43)
546 #define SW_MCAMODE _IO('S', M_MCA_MODE)
547 #define SW_VGA_C40x25 _IO('S', M_VGA_C40x25)
548 #define SW_VGA_C80x25 _IO('S', M_VGA_C80x25)
549 #define SW_VGA_C80x30 _IO('S', M_VGA_C80x30)
550 #define SW_VGA_C80x50 _IO('S', M_VGA_C80x50)
551 #define SW_VGA_C80x60 _IO('S', M_VGA_C80x60)
552 #define SW_VGA_M80x25 _IO('S', M_VGA_M80x25)
553 #define SW_VGA_M80x30 _IO('S', M_VGA_M80x30)
554 #define SW_VGA_M80x50 _IO('S', M_VGA_M80x50)
555 #define SW_VGA_M80x60 _IO('S', M_VGA_M80x60)
556 #define SW_VGA11 _IO('S', M_VGA11)
557 #define SW_BG640x480 _IO('S', M_VGA11)
558 #define SW_VGA12 _IO('S', M_VGA12)
559 #define SW_CG640x480 _IO('S', M_VGA12)
560 #define SW_VGA13 _IO('S', M_VGA13)
561 #define SW_VGA_CG320 _IO('S', M_VGA13)
562 #define SW_VGA_CG640 _IO('S', M_VGA_CG640)
563 #define SW_VGA_MODEX _IO('S', M_VGA_MODEX)
564
565 #define SW_TEXT_80x25 _IO('S', M_TEXT_80x25)
566 #define SW_TEXT_80x30 _IO('S', M_TEXT_80x30)
567 #define SW_TEXT_80x43 _IO('S', M_TEXT_80x43)
568 #define SW_TEXT_80x50 _IO('S', M_TEXT_80x50)
569 #define SW_TEXT_80x60 _IO('S', M_TEXT_80x60)
570 #define SW_TEXT_132x25 _IO('S', M_TEXT_132x25)
571 #define SW_TEXT_132x30 _IO('S', M_TEXT_132x30)
572 #define SW_TEXT_132x43 _IO('S', M_TEXT_132x43)
573 #define SW_TEXT_132x50 _IO('S', M_TEXT_132x50)
574 #define SW_TEXT_132x60 _IO('S', M_TEXT_132x60)
575
576 #define M_VESA_BASE 0x100 /* VESA mode number base */
577
578 #define M_VESA_CG640x400 0x100 /* 640x400, 256 color */
579 #define M_VESA_CG640x480 0x101 /* 640x480, 256 color */
580 #define M_VESA_800x600 0x102 /* 800x600, 16 color */
581 #define M_VESA_CG800x600 0x103 /* 800x600, 256 color */
582 #define M_VESA_1024x768 0x104 /* 1024x768, 16 color */
583 #define M_VESA_CG1024x768 0x105 /* 1024x768, 256 color */
584 #define M_VESA_1280x1024 0x106 /* 1280x1024, 16 color */
585 #define M_VESA_CG1280x1024 0x107 /* 1280x1024, 256 color */
586 #define M_VESA_C80x60 0x108 /* 8x8 font */
587 #define M_VESA_C132x25 0x109 /* 8x16 font */
588 #define M_VESA_C132x43 0x10a /* 8x14 font */
589 #define M_VESA_C132x50 0x10b /* 8x8 font */
590 #define M_VESA_C132x60 0x10c /* 8x8 font */
591 #define M_VESA_32K_320 0x10d /* 320x200, 5:5:5 */
592 #define M_VESA_64K_320 0x10e /* 320x200, 5:6:5 */
593 #define M_VESA_FULL_320 0x10f /* 320x200, 8:8:8 */
594 #define M_VESA_32K_640 0x110 /* 640x480, 5:5:5 */
595 #define M_VESA_64K_640 0x111 /* 640x480, 5:6:5 */
596 #define M_VESA_FULL_640 0x112 /* 640x480, 8:8:8 */
597 #define M_VESA_32K_800 0x113 /* 800x600, 5:5:5 */
598 #define M_VESA_64K_800 0x114 /* 800x600, 5:6:5 */
599 #define M_VESA_FULL_800 0x115 /* 800x600, 8:8:8 */
600 #define M_VESA_32K_1024 0x116 /* 1024x768, 5:5:5 */
601 #define M_VESA_64K_1024 0x117 /* 1024x768, 5:6:5 */
602 #define M_VESA_FULL_1024 0x118 /* 1024x768, 8:8:8 */
603 #define M_VESA_32K_1280 0x119 /* 1280x1024, 5:5:5 */
604 #define M_VESA_64K_1280 0x11a /* 1280x1024, 5:6:5 */
605 #define M_VESA_FULL_1280 0x11b /* 1280x1024, 8:8:8 */
606 #define M_VESA_MODE_MAX 0x1ff
607
608 #define SW_VESA_CG640x400 _IO('V', M_VESA_CG640x400 - M_VESA_BASE)
609 #define SW_VESA_CG640x480 _IO('V', M_VESA_CG640x480 - M_VESA_BASE)
610 #define SW_VESA_800x600 _IO('V', M_VESA_800x600 - M_VESA_BASE)
611 #define SW_VESA_CG800x600 _IO('V', M_VESA_CG800x600 - M_VESA_BASE)
612 #define SW_VESA_1024x768 _IO('V', M_VESA_1024x768 - M_VESA_BASE)
613 #define SW_VESA_CG1024x768 _IO('V', M_VESA_CG1024x768 - M_VESA_BASE)
614 #define SW_VESA_1280x1024 _IO('V', M_VESA_1280x1024 - M_VESA_BASE)
615 #define SW_VESA_CG1280x1024 _IO('V', M_VESA_CG1280x1024 - M_VESA_BASE)
616 #define SW_VESA_C80x60 _IO('V', M_VESA_C80x60 - M_VESA_BASE)
617 #define SW_VESA_C132x25 _IO('V', M_VESA_C132x25 - M_VESA_BASE)
618 #define SW_VESA_C132x43 _IO('V', M_VESA_C132x43 - M_VESA_BASE)
619 #define SW_VESA_C132x50 _IO('V', M_VESA_C132x50 - M_VESA_BASE)
620 #define SW_VESA_C132x60 _IO('V', M_VESA_C132x60 - M_VESA_BASE)
621 #define SW_VESA_32K_320 _IO('V', M_VESA_32K_320 - M_VESA_BASE)
622 #define SW_VESA_64K_320 _IO('V', M_VESA_64K_320 - M_VESA_BASE)
623 #define SW_VESA_FULL_320 _IO('V', M_VESA_FULL_320 - M_VESA_BASE)
624 #define SW_VESA_32K_640 _IO('V', M_VESA_32K_640 - M_VESA_BASE)
625 #define SW_VESA_64K_640 _IO('V', M_VESA_64K_640 - M_VESA_BASE)
626 #define SW_VESA_FULL_640 _IO('V', M_VESA_FULL_640 - M_VESA_BASE)
627 #define SW_VESA_32K_800 _IO('V', M_VESA_32K_800 - M_VESA_BASE)
628 #define SW_VESA_64K_800 _IO('V', M_VESA_64K_800 - M_VESA_BASE)
629 #define SW_VESA_FULL_800 _IO('V', M_VESA_FULL_800 - M_VESA_BASE)
630 #define SW_VESA_32K_1024 _IO('V', M_VESA_32K_1024 - M_VESA_BASE)
631 #define SW_VESA_64K_1024 _IO('V', M_VESA_64K_1024 - M_VESA_BASE)
632 #define SW_VESA_FULL_1024 _IO('V', M_VESA_FULL_1024 - M_VESA_BASE)
633 #define SW_VESA_32K_1280 _IO('V', M_VESA_32K_1280 - M_VESA_BASE)
634 #define SW_VESA_64K_1280 _IO('V', M_VESA_64K_1280 - M_VESA_BASE)
635 #define SW_VESA_FULL_1280 _IO('V', M_VESA_FULL_1280 - M_VESA_BASE)
636
637 #endif /* !_MACHINE_CONSOLE_H_ */
638
Cache object: 56cd65bb7254b46d3f9936c22025a004
|