#ifndef _LINUX_KD_H #define _LINUX_KD_H /* 0x4B is 'K', to avoid collision with termios and vt */ #define SWAPMONO 0x4B00 /* use mca as output device */ #define SWAPCGA 0x4B01 /* use cga as output device */ #define SWAPEGA 0x4B02 /* use ega as output device */ #define SWAPVGA 0x4B03 /* use vga as output device */ #define CONS_CURRENT 0x4B04 /* return current output device */ #define MONO 0x01 #define CGA 0x02 #define EGA 0x03 #define SW_B40x25 0x4B05 /* 40x25 mono text (cga/ega) */ #define SW_C40x25 0x4B06 /* 40x24 color text (cga/ega) */ #define SW_B80x25 0x4B07 /* 80x25 mono text (cga/ega) */ #define SW_C80x25 0x4B08 /* 80x25 color text (cga/ega) */ #define SW_BG320 0x4B09 /* 320x200 mono graphics (cga/ega) */ #define SW_CG320 0x4B0A /* 320x200 color graphics (cga/ega) */ #define SW_BG640 0x4B0B /* 640x200 mono graphics (cga/ega) */ #define SW_CG320_D 0x4B0C /* 320x200 graphics (ega mode d) */ #define SW_CG640_E 0x4B0D /* 640x200 graphics (ega mode e) */ #define SW_EGAMONOAPA 0x4B0E /* 640x350 graphics (ega mode f) */ #define SW_ENH_MONOAPA2 0x4B0F /* 640x350 graphics extd mem (ega mode f*) */ #define SW_CG640x350 0x4B10 /* 640x350 graphics (ega mode 10) */ #define SW_ENH_CG640 0x4B11 /* 640x350 graphics extd mem (ega mode 10*) */ #define SW_EGAMONO80x25 0x4B12 /* 80x25 mono text (ega mode 7) */ #define SW_ENHB40x25 0x4B13 /* enhanced 40x25 mono text (ega) */ #define SW_ENHC40x25 0x4B14 /* enhanced 40x25 color text (ega) */ #define SW_ENHB80x25 0x4B15 /* enhanced 80x25 mono text (ega) */ #define SW_ENHC80x25 0x4B16 /* enhanced 80x25 color text (ega) */ #define SW_ENHB80x43 0x4B17 /* enhanced 80x43 mono text (ega) */ #define SW_ENHC80x43 0x4B18 /* enhanced 80x43 color text (ega) */ #define SW_MCAMODE 0x4B19 /* reinit mca */ #define SW_ATT640 0x4B1A /* 640x400 16color */ /* should add more vga modes, etc */ #define CONS_GET 0x4B1B /* get current display mode */ #define M_B40x25 0 /* 40x25 mono (cga/ega) */ #define M_C40x25 1 /* 40x25 color (cga/ega) */ #define M_B80x25 2 /* 80x25 mono (cga/ega) */ #define M_C80x25 3 /* 80x25 color (cga/ega) */ #define M_BG320 4 /* 320x200 mono (cga/ega) */ #define M_CG320 5 /* 320x200 color (cga/ega) */ #define M_BG640 6 /* 640x200 mono (cga/ega) */ #define M_EGAMONO80x25 7 /* 80x25 mono (ega) */ #define M_CG320_D 13 /* ega mode d */ #define M_CG640_E 14 /* ega mode e */ #define M_EFAMONOAPA 15 /* ega mode f */ #define M_CG640x350 16 /* ega mode 10 */ #define M_ENHMONOAPA2 17 /* ega mode f with ext mem */ #define M_ENH_CG640 18 /* ega mode 10* */ #define M_ENH_B40x25 19 /* ega enh 40x25 mono */ #define M_ENH_C40x25 20 /* ega enh 40x25 color */ #define M_ENH_B80x25 21 /* ega enh 80x25 mono */ #define M_ENH_C80x25 22 /* ega enh 80x25 color */ #define M_ENH_B80x43 0x70 /* ega enh 80x43 mono */ #define M_ENH_C80x43 0x71 /* ega enh 80x43 color */ #define M_MCA_MODE 0xff /* monochrome adapter mode */ #define MCA_GET 0x4B1C /* get mca display mode */ #define CGA_GET 0x4B1D /* get cga display mode */ #define EGA_GET 0x4B1E /* get ega display mode */ #define MAPCONS 0x4B1F /* map current video mem into address space */ #define MAPMONO 0x4B20 /* map mca video mem into address space */ #define MAPCGA 0x4B21 /* map cga video mem into address space */ #define MAPEGA 0x4B22 /* map ega video mem into address space */ #define MAPVGA 0x4B23 /* map vga video mem into address space */ struct port_io_struc { char dir; /* direction in vs out */ unsigned short port; char data; }; #define IN_ON_PORT 0x00 #define OUT_ON_PORT 0x01 struct port_io_arg { struct port_io_struc args[4]; }; #define MCAIO 0x4B24 /* i/o to mca video board */ #define CGAIO 0x4B25 /* i/o to cga video board */ #define EGAIO 0x4B26 /* i/o to ega video board */ #define VGAIO 0x4B27 /* i/o to vga video board */ #define GIO_FONT8x8 0x4B28 /* gets current 8x8 font used */ #define PIO_FONT8x8 0x4B29 /* use supplied 8x8 font */ #define GIO_FONT8x14 0x4B2A /* gets current 8x14 font used */ #define PIO_FONT8x14 0x4B2B /* use supplied 8x14 font */ #define GIO_FONT8x16 0x4B2C /* gets current 8x16 font used */ #define PIO_FONT8x16 0x4B2D /* use supplied 8x16 font */ #define GIO_FONT 0x4B60 /* gets font in expanded form */ #define PIO_FONT 0x4B61 /* use font in expanded form */ #define MKDIOADDR 32 /* io bitmap size from */ struct kd_disparam { long type; /* type of display */ char *addr; /* display mem address */ ushort ioaddr[MKDIOADDR]; /* valid i/o addresses */ }; #define KDDISPTYPE 0x4B2E /* gets display info */ #define KD_MONO 0x01 #define KD_HERCULES 0x02 #define KD_CGA 0x03 #define KD_EGA 0x04 #define KIOCSOUND 0x4B2F /* start sound generation (0 for off) */ #define KDMKTONE 0x4B30 /* generate tone */ #define KDGETLED 0x4B31 /* return current led flags */ #define KDSETLED 0x4B32 /* set current led flags */ #define LED_SCR 0x01 /* scroll lock */ #define LED_CAP 0x04 /* caps lock */ #define LED_NUM 0x02 /* num lock */ #define KDGKBTYPE 0x4B33 /* get keyboard type */ #define KB_84 0x01 #define KB_101 0x02 #define KB_OTHER 0x03 #define KDADDIO 0x4B34 /* add i/o port as valid */ #define KDDELIO 0x4B35 /* del i/o port as valid */ #define KDENABIO 0x4B36 /* enable i/o to video board */ #define KDDISABIO 0x4B37 /* disable i/o to video board */ struct kd_quemode { int qsize; /* desired # elem in queue */ int signo; /* signal to send when queue not empty */ char *qaddr; /* user virt addr of queue */ }; #define KDQUEMODE 0x4B38 /* enable/disable special queue mode */ #define KDSBORDER 0x4B39 /* set screen boarder in ega text mode */ #define KDSETMODE 0x4B3A /* set text/grahics mode */ #define KD_TEXT 0x00 #define KD_GRAPHICS 0x01 #define KD_TEXT0 0x02 /* ? */ #define KD_TEXT1 0x03 /* ? */ #define KDGETMODE 0x4B3B /* get current mode */ struct kd_memloc { char *vaddr; /* virt addr to map to */ char *physaddr; /* phys addr to map from */ long length; /* number of bytes */ long ioflg; /* enable i/o if set */ }; #define KDMAPDISP 0x4B3C /* map display into address space */ #define KDUNMAPDISP 0x4B3D /* unmap display from address space */ #define KDVDCTYPE 0x4B3E /* return vdc controller/display info */ #define KIOCINFO 0x4B3F /* tell what the device is */ typedef char scrnmap_t; #define E_TABSZ 256 #define GIO_SCRNMAP 0x4B40 /* get screen mapping from kernel */ #define PIO_SCRNMAP 0x4B41 /* put screen mapping table in kernel */ #define GIO_ATTR 0x4B42 /* get screen attributes */ #define GIO_COLOR 0x4B43 /* return nonzero if display is color */ #define K_RAW 0x00 #define K_XLATE 0x01 #define K_MEDIUMRAW 0x02 #define KDGKBMODE 0x4B44 /* gets current keyboard mode */ #define KDSKBMODE 0x4B45 /* sets current keyboard mode */ /* merge with previous pair of ioctls? */ #define K_METABIT 0x03 #define K_ESCPREFIX 0x04 #define KDGKBMETA 0x4B62 /* gets meta key handling mode */ #define KDSKBMETA 0x4B63 /* sets meta key handling mode */ struct kbentry { u_char kb_table; u_char kb_index; u_short kb_value; }; #define K_NORMTAB 0x00 #define K_SHIFTTAB 0x01 #define K_ALTTAB 0x02 #define K_ALTSHIFTTAB 0x03 #define K_SRQTAB 0x04 #define KDGKBENT 0x4B46 /* gets one entry in translation table */ #define KDSKBENT 0x4B47 /* sets one entry in translation table */ struct kbsentry { u_char kb_func; u_char kb_string[512]; /* FUNC_BUFSIZE from keyboard.h */ }; #define KDGKBSENT 0x4B48 /* gets one function key string entry */ #define KDSKBSENT 0x4B49 /* sets one function key string entry */ struct kbdiacr { u_char diacr, base, result; }; struct kbdiacrs { unsigned int kb_cnt; /* number of entries in following array */ struct kbdiacr kbdiacr[256]; /* MAX_DIACR from keyboard.h */ }; #define KDGKBDIACR 0x4B4A /* read kernel accent table */ #define KDSKBDIACR 0x4B4B /* write kernel accent table */ /* note: 0x4B60 and 0x4B61 used above for GIO_FONT and PIO_FONT 0x4B62 and 0x4B63 used above for KDGKBMETA and KDSKBMETA */ #endif /* _LINUX_KD_H */