ioctl_kd(2) System Calls Manual ioctl_kd(2) ioctl_kd - ioctl #include /* Definition of op constants */ #include int ioctl(int fd, unsigned long op, void *argp); ioctl(2) . KDGETLED LED. argp uint8_t. *argp LED : LED_CAP 0x04 LED_NUM 0x02 LED_SCR 0x01 KDSETLED LED. LED argp. LED : . 1.1.54 LED KDGETLED/KDSETLED . 1.1.54 LED . ioctl . KDGKBLED CapsLock NumLock ScrollLock ( ). argp uint8_t . ( 0x7) ( 0x70) . ( 1.1.54.) KDSKBLED CapsLock NumLock ScrollLock ( ). argp . ( 0x7) ( 0x70) . ( 1.1.54.) KDGKBTYPE . KB_101 0x02. KDADDIO / . ioperm(arg,1,1). KDDELIO / . ioperm(arg,1,0). KDENABIO / . ioperm(0x3b4, 0x3df-0x3b4+1, 1). KDDISABIO / . ioperm(0x3b4, 0x3df-0x3b4+1, 0). KDSETMODE /. argp : KD_TEXT 0x00 KD_GRAPHICS 0x01 KDGETMODE /. argp int KDSETMODE. KDMKTONE . 16 argp 16 . . . argp = (125<<16) + 0x637 ctrl-G. ( Linux 0.99pl1 Linux 2.1.49-50.) KIOCSOUND . 16 argp ( argp = 1193180/). argp = 0 . . GIO_CMAP . argp 48 . ( Linux 1.3.3.) PIO_CMAP . argp 48 16 : 0 255 . : . ( Linux 1.3.3.) GIO_FONT 256 . argp 8192 . EINVAL 512 . GIO_FONTX . argp struct consolefontdesc ( PIO_FONTX). charcount chardata. charcount charheight chardata charcount errno ENOMEM. ( Linux 1.3.1.) PIO_FONT 256 . EGA/VGA. argp 8192 32 . N 8xN (0 < N <= 32). Unicode. PIO_FONTX . argp struct consolefontdesc { unsigned short charcount; /* characters in font (256 or 512) */ unsigned short charheight; /* scan lines per character (1-32) */ char *chardata; /* font data in expanded form */ }; SIGWINCH . Unicode. ( Linux 1.3.1.) PIO_FONTRESET Unicode . argp NULL Linux. ( Linux 1.3.28.) GIO_SCRNMAP . argp E_TABSZ . 256 . GIO_UNISCRNMAP Unicode . argp E_TABSZ*sizeof(unsigned short) Unicodes . Unicodes U+F000 " ". ( Linux 1.3.1.) PIO_SCRNMAP " " () . argp E_TABSZ. PIO_UNISCRNMAP " " () Unicodes Unicode-to-font . Unicodes U+F000 . ( Linux 1.3.1.) GIO_UNIMAP Unicode-to-font . argp struct unimapdesc { unsigned short entry_ct; struct unipair *entries; }; entries struct unipair { unsigned short unicode; unsigned short fontpos; }; ( Linux 1.1.92.) PIO_UNIMAP unicode-to-font . argp struct unimapdesc. ( Linux 1.1.92) PIO_UNIMAPCLR . argp struct unimapinit { unsigned short advised_hashsize; /* 0 if no opinion */ unsigned short advised_hashstep; /* 0 if no opinion */ unsigned short advised_hashlevel; /* 0 if no opinion */ }; ( Linux 1.1.92.) KDGKBMODE . argp long : K_RAW 0x00 /* (scancode) */ K_XLATE 0x01 /* keycodes keymap */ K_MEDIUMRAW 0x02 /* (scancode) */ K_UNICODE 0x03 /* Unicode */ K_OFF 0x04 /* ( Linux 2.6.39) */ KDSKBMODE . argp long KDGKBMODE. KDGKBMETA meta. argp long : K_METABIT 0x03 K_ESCPREFIX 0x04 KDSKBMETA . argp long KDGKBMETA. KDGKBENT ( ). argp struct kbentry { unsigned char kb_table; unsigned char kb_index; unsigned short kb_value; }; : kb_table (0 <= kb_table < MAX_NR_KEYMAPS) kb_index (0 <= kb_index < NR_KEYS). kb_value K_HOLE K_NOSUCHMAP kb_table . KDSKBENT . argp struct kbentry. KDGKBSENT . argp struct kbsentry { unsigned char kb_func; unsigned char kb_string[512]; }; kb_string ( ) kb_func. KDSKBSENT . argp struct kbsentry. KDGKBDIACR . argp struct kbdiacrs { unsigned int kb_cnt; struct kbdiacr kbdiacr[256]; }; kb_cnt struct kbdiacr { unsigned char diacr; unsigned char base; unsigned char result; }; KDGETKEYCODE ( ). argp struct kbkeycode { unsigned int scancode; unsigned int keycode; }; keycode scancode . ( 89 <= scancode <= 255. 1 <= scancode <= 88 keycode==scancode.) ( Linux 1.1.63.) KDSETKEYCODE . argp struct kbkeycode. ( Linux 1.1.63.) KDSIGACCEPT argp . (1 <= argp <= NSIG). ( spawn_console() linux/drivers/char/keyboard.c.) 0 ( ). -1 errno . EINVAL argp . . ioctl(2) ioctl_console(2) 3 . . : . 6.18 8 2026 ioctl_kd(2)