summaryrefslogtreecommitdiffstats
path: root/man2/ioctl_console.2
diff options
context:
space:
mode:
Diffstat (limited to 'man2/ioctl_console.2')
-rw-r--r--man2/ioctl_console.2915
1 files changed, 0 insertions, 915 deletions
diff --git a/man2/ioctl_console.2 b/man2/ioctl_console.2
deleted file mode 100644
index f06725f..0000000
--- a/man2/ioctl_console.2
+++ /dev/null
@@ -1,915 +0,0 @@
-'\" t
-.\" Copyright (c) 1995 Jim Van Zandt <jrv@vanzandt.mv.com> and aeb
-.\" Sun Feb 26 11:46:23 MET 1995
-.\"
-.\" SPDX-License-Identifier: GPL-2.0-or-later
-.\"
-.\" Modified, Sun Feb 26 15:04:20 1995, faith@cs.unc.edu
-.\" Modified, Thu Apr 20 22:08:17 1995, jrv@vanzandt.mv.com
-.\" Modified, Mon Sep 18 22:32:47 1995, hpa@storm.net (H. Peter Anvin)
-.\" FIXME The following are not documented:
-.\" KDFONTOP (since Linux 2.1.111)
-.\" KDGKBDIACRUC (since Linux 2.6.24)
-.\" KDSKBDIACR
-.\" KDSKBDIACRUC (since Linux 2.6.24)
-.\" KDKBDREP (since Linux 2.1.113)
-.\" KDMAPDISP (not implemented as at Linux 2.6.27)
-.\" KDUNMAPDISP (not implemented as at Linux 2.6.27)
-.\" VT_LOCKSWITCH (since Linux 1.3.47, needs CAP_SYS_TTY_CONFIG)
-.\" VT_UNLOCKSWITCH (since Linux 1.3.47, needs CAP_SYS_TTY_CONFIG)
-.\" VT_GETHIFONTMASK (since Linux 2.6.18)
-.\"
-.TH ioctl_console 2 2024-03-03 "Linux man-pages 6.7"
-.SH NAME
-ioctl_console \- ioctls for console terminal and virtual consoles
-.SH DESCRIPTION
-The following Linux-specific
-.BR ioctl (2)
-operations are supported for console terminals and virtual consoles.
-Each operation requires a third argument, assumed here to be
-.IR argp .
-.TP
-.B KDGETLED
-Get state of LEDs.
-.I argp
-points to a
-.IR char .
-The lower three bits
-of
-.I *argp
-are set to the state of the LEDs, as follows:
-.TS
-l l l.
-LED_CAP 0x04 caps lock led
-LED_NUM 0x02 num lock led
-LED_SCR 0x01 scroll lock led
-.TE
-.TP
-.B KDSETLED
-Set the LEDs.
-The LEDs are set to correspond to the lower three bits of the
-unsigned long integer in
-.IR argp .
-However, if a higher order bit is set,
-the LEDs revert to normal: displaying the state of the
-keyboard functions of caps lock, num lock, and scroll lock.
-.P
-Before Linux 1.1.54, the LEDs just reflected the state of the corresponding
-keyboard flags, and KDGETLED/KDSETLED would also change the keyboard
-flags.
-Since Linux 1.1.54 the LEDs can be made to display arbitrary
-information, but by default they display the keyboard flags.
-The following two ioctls are used to access the keyboard flags.
-.TP
-.B KDGKBLED
-Get keyboard flags CapsLock, NumLock, ScrollLock (not lights).
-.I argp
-points to a char which is set to the flag state.
-The low order three bits (mask 0x7) get the current flag state,
-and the low order bits of the next nibble (mask 0x70) get
-the default flag state.
-(Since Linux 1.1.54.)
-.TP
-.B KDSKBLED
-Set keyboard flags CapsLock, NumLock, ScrollLock (not lights).
-.I argp
-is an unsigned long integer that has the desired flag state.
-The low order three bits (mask 0x7) have the flag state,
-and the low order bits of the next nibble (mask 0x70) have
-the default flag state.
-(Since Linux 1.1.54.)
-.TP
-.B KDGKBTYPE
-Get keyboard type.
-This returns the value KB_101, defined as 0x02.
-.TP
-.B KDADDIO
-Add I/O port as valid.
-Equivalent to
-.IR ioperm(arg,1,1) .
-.TP
-.B KDDELIO
-Delete I/O port as valid.
-Equivalent to
-.IR ioperm(arg,1,0) .
-.TP
-.B KDENABIO
-Enable I/O to video board.
-Equivalent to
-.IR "ioperm(0x3b4, 0x3df\-0x3b4+1, 1)" .
-.TP
-.B KDDISABIO
-Disable I/O to video board.
-Equivalent to
-.IR "ioperm(0x3b4, 0x3df\-0x3b4+1, 0)" .
-.TP
-.B KDSETMODE
-Set text/graphics mode.
-.I argp
-is an unsigned integer containing one of:
-.TS
-l l.
-KD_TEXT 0x00
-KD_GRAPHICS 0x01
-.TE
-.TP
-.B KDGETMODE
-Get text/graphics mode.
-.I argp
-points to an
-.I int
-which is set to one
-of the values shown above for
-.BR KDSETMODE .
-.TP
-.B KDMKTONE
-Generate tone of specified length.
-The lower 16 bits of the unsigned long integer in
-.I argp
-specify the period in clock cycles,
-and the upper 16 bits give the duration in msec.
-If the duration is zero, the sound is turned off.
-Control returns immediately.
-For example,
-.I argp
-= (125<<16) + 0x637 would specify
-the beep normally associated with a ctrl-G.
-(Thus since Linux 0.99pl1; broken in Linux 2.1.49-50.)
-.TP
-.B KIOCSOUND
-Start or stop sound generation.
-The lower 16 bits of
-.I argp
-specify the period in clock cycles
-(that is,
-.I argp
-= 1193180/frequency).
-.I argp
-= 0 turns sound off.
-In either case, control returns immediately.
-.TP
-.B GIO_CMAP
-Get the current default color map from kernel.
-.I argp
-points to
-a 48-byte array.
-(Since Linux 1.3.3.)
-.TP
-.B PIO_CMAP
-Change the default text-mode color map.
-.I argp
-points to a
-48-byte array which contains, in order, the Red, Green, and Blue
-values for the 16 available screen colors: 0 is off, and 255 is full
-intensity.
-The default colors are, in order: black, dark red, dark
-green, brown, dark blue, dark purple, dark cyan, light grey, dark
-grey, bright red, bright green, yellow, bright blue, bright purple,
-bright cyan, and white.
-(Since Linux 1.3.3.)
-.TP
-.B GIO_FONT
-Gets 256-character screen font in expanded form.
-.I argp
-points to an 8192-byte array.
-Fails with error code
-.B EINVAL
-if the
-currently loaded font is a 512-character font, or if the console is
-not in text mode.
-.TP
-.B GIO_FONTX
-Gets screen font and associated information.
-.I argp
-points to a
-.I "struct consolefontdesc"
-(see
-.BR PIO_FONTX ).
-On call, the
-.I charcount
-field should be set to the maximum number of
-characters that would fit in the buffer pointed to by
-.IR chardata .
-On return, the
-.I charcount
-and
-.I charheight
-are filled with
-the respective data for the currently loaded font, and the
-.I chardata
-array contains the font data if the initial value of
-.I charcount
-indicated enough space was available; otherwise the
-buffer is untouched and
-.I errno
-is set to
-.BR ENOMEM .
-(Since Linux 1.3.1.)
-.TP
-.B PIO_FONT
-Sets 256-character screen font.
-Load font into the EGA/VGA character
-generator.
-.I argp
-points to an 8192-byte map, with 32 bytes per
-character.
-Only the first
-.I N
-of them are used for an 8x\fIN\fP font
-(0 <
-.I N
-<= 32).
-This call also invalidates the Unicode mapping.
-.TP
-.B PIO_FONTX
-Sets screen font and associated rendering information.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-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 */
-};
-.EE
-.in
-.IP
-If necessary, the screen will be appropriately resized, and
-.B SIGWINCH
-sent to the appropriate processes.
-This call also invalidates the Unicode mapping.
-(Since Linux 1.3.1.)
-.TP
-.B PIO_FONTRESET
-Resets the screen font, size, and Unicode mapping to the bootup
-defaults.
-.I argp
-is unused, but should be set to NULL to
-ensure compatibility with future versions of Linux.
-(Since Linux 1.3.28.)
-.TP
-.B GIO_SCRNMAP
-Get screen mapping from kernel.
-.I argp
-points to an area of size
-E_TABSZ, which is loaded with the font positions used to display each
-character.
-This call is likely to return useless information if the
-currently loaded font is more than 256 characters.
-.TP
-.B GIO_UNISCRNMAP
-Get full Unicode screen mapping from kernel.
-.I argp
-points to an
-area of size
-.IR "E_TABSZ*sizeof(unsigned short)" ,
-which is loaded with the
-Unicodes each character represent.
-A special set of Unicodes,
-starting at U+F000, are used to represent "direct to font" mappings.
-(Since Linux 1.3.1.)
-.TP
-.B PIO_SCRNMAP
-Loads the "user definable" (fourth) table in the kernel which maps
-bytes into console screen symbols.
-.I argp
-points to an area of
-size E_TABSZ.
-.TP
-.B PIO_UNISCRNMAP
-Loads the "user definable" (fourth) table in the kernel which maps
-bytes into Unicodes, which are then translated into screen symbols
-according to the currently loaded Unicode-to-font map.
-Special Unicodes starting at U+F000 can be used to map directly to the font
-symbols.
-(Since Linux 1.3.1.)
-.TP
-.B GIO_UNIMAP
-Get Unicode-to-font mapping from kernel.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct unimapdesc {
- unsigned short entry_ct;
- struct unipair *entries;
-};
-.EE
-.in
-.IP
-where
-.I entries
-points to an array of
-.IP
-.in +4n
-.EX
-struct unipair {
- unsigned short unicode;
- unsigned short fontpos;
-};
-.EE
-.in
-.IP
-(Since Linux 1.1.92.)
-.TP
-.B PIO_UNIMAP
-Put unicode-to-font mapping in kernel.
-.I argp
-points to a
-.IR "struct unimapdesc" .
-(Since Linux 1.1.92)
-.TP
-.B PIO_UNIMAPCLR
-Clear table, possibly advise hash algorithm.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-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 */
-};
-.EE
-.in
-.IP
-(Since Linux 1.1.92.)
-.TP
-.B KDGKBMODE
-Gets current keyboard mode.
-.I argp
-points to a
-.I long
-which is set to one
-of these:
-.TS
-l l.
-K_RAW 0x00 /* Raw (scancode) mode */
-K_XLATE 0x01 /* Translate keycodes using keymap */
-K_MEDIUMRAW 0x02 /* Medium raw (scancode) mode */
-K_UNICODE 0x03 /* Unicode mode */
-K_OFF 0x04 /* Disabled mode; since Linux 2.6.39 */
-.\" K_OFF: commit 9fc3de9c83565fcaa23df74c2fc414bb6e7efb0a
-.TE
-.TP
-.B KDSKBMODE
-Sets current keyboard mode.
-.I argp
-is a
-.I long
-equal to one of the values shown for
-.BR KDGKBMODE .
-.TP
-.B KDGKBMETA
-Gets meta key handling mode.
-.I argp
-points to a
-.I long
-which is
-set to one of these:
-.TS
-l l l.
-K_METABIT 0x03 set high order bit
-K_ESCPREFIX 0x04 escape prefix
-.TE
-.TP
-.B KDSKBMETA
-Sets meta key handling mode.
-.I argp
-is a
-.I long
-equal to one of the values shown above for
-.BR KDGKBMETA .
-.TP
-.B KDGKBENT
-Gets one entry in key translation table (keycode to action code).
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct kbentry {
- unsigned char kb_table;
- unsigned char kb_index;
- unsigned short kb_value;
-};
-.EE
-.in
-.IP
-with the first two members filled in:
-.I kb_table
-selects the key table (0 <=
-.I kb_table
-< MAX_NR_KEYMAPS),
-and
-.I kb_index
-is the keycode (0 <=
-.I kb_index
-< NR_KEYS).
-.I kb_value
-is set to the corresponding action code,
-or K_HOLE if there is no such key,
-or K_NOSUCHMAP if
-.I kb_table
-is invalid.
-.TP
-.B KDSKBENT
-Sets one entry in translation table.
-.I argp
-points to a
-.IR "struct kbentry" .
-.TP
-.B KDGKBSENT
-Gets one function key string.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct kbsentry {
- unsigned char kb_func;
- unsigned char kb_string[512];
-};
-.EE
-.in
-.IP
-.I kb_string
-is set to the (null-terminated) string corresponding to
-the
-.IR kb_func th
-function key action code.
-.TP
-.B KDSKBSENT
-Sets one function key string entry.
-.I argp
-points to a
-.IR "struct kbsentry" .
-.TP
-.B KDGKBDIACR
-Read kernel accent table.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct kbdiacrs {
- unsigned int kb_cnt;
- struct kbdiacr kbdiacr[256];
-};
-.EE
-.in
-.IP
-where
-.I kb_cnt
-is the number of entries in the array, each of which
-is a
-.IP
-.in +4n
-.EX
-struct kbdiacr {
- unsigned char diacr;
- unsigned char base;
- unsigned char result;
-};
-.EE
-.in
-.TP
-.B KDGETKEYCODE
-Read kernel keycode table entry (scan code to keycode).
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct kbkeycode {
- unsigned int scancode;
- unsigned int keycode;
-};
-.EE
-.in
-.IP
-.I keycode
-is set to correspond to the given
-.IR scancode .
-(89 <=
-.I scancode
-<= 255 only.
-For 1 <=
-.I scancode
-<= 88,
-.IR keycode == scancode .)
-(Since Linux 1.1.63.)
-.TP
-.B KDSETKEYCODE
-Write kernel keycode table entry.
-.I argp
-points to a
-.IR "struct kbkeycode" .
-(Since Linux 1.1.63.)
-.TP
-.B KDSIGACCEPT
-The calling process indicates its willingness to accept the signal
-.I argp
-when it is generated by pressing an appropriate key combination.
-(1 <=
-.I argp
-<= NSIG).
-(See
-.IR spawn_console ()
-in
-.IR linux/drivers/char/keyboard.c .)
-.TP
-.B VT_OPENQRY
-Returns the first available (non-opened) console.
-.I argp
-points to an
-.I int
-which is set to the
-number of the vt (1 <=
-.I *argp
-<= MAX_NR_CONSOLES).
-.TP
-.B VT_GETMODE
-Get mode of active vt.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct vt_mode {
- char mode; /* vt mode */
- char waitv; /* if set, hang on writes if not active */
- short relsig; /* signal to raise on release op */
- short acqsig; /* signal to raise on acquisition */
- short frsig; /* unused (set to 0) */
-};
-.EE
-.in
-.IP
-which is set to the mode of the active vt.
-.I mode
-is set to one of these values:
-.TS
-l l.
-VT_AUTO auto vt switching
-VT_PROCESS process controls switching
-VT_ACKACQ acknowledge switch
-.TE
-.TP
-.B VT_SETMODE
-Set mode of active vt.
-.I argp
-points to a
-.IR "struct vt_mode" .
-.TP
-.B VT_GETSTATE
-Get global vt state info.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct vt_stat {
- unsigned short v_active; /* active vt */
- unsigned short v_signal; /* signal to send */
- unsigned short v_state; /* vt bit mask */
-};
-.EE
-.in
-.IP
-For each vt in use, the corresponding bit in the
-.I v_state
-member is set.
-(Linux 1.0 through Linux 1.1.92.)
-.TP
-.B VT_RELDISP
-Release a display.
-.TP
-.B VT_ACTIVATE
-Switch to vt
-.I argp
-(1 <=
-.I argp
-<= MAX_NR_CONSOLES).
-.TP
-.B VT_WAITACTIVE
-Wait until vt
-.I argp
-has been activated.
-.TP
-.B VT_DISALLOCATE
-Deallocate the memory associated with vt
-.IR argp .
-(Since Linux 1.1.54.)
-.TP
-.B VT_RESIZE
-Set the kernel's idea of screensize.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct vt_sizes {
- unsigned short v_rows; /* # rows */
- unsigned short v_cols; /* # columns */
- unsigned short v_scrollsize; /* no longer used */
-};
-.EE
-.in
-.IP
-Note that this does not change the videomode.
-See
-.BR resizecons (8).
-(Since Linux 1.1.54.)
-.TP
-.B VT_RESIZEX
-Set the kernel's idea of various screen parameters.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct vt_consize {
- unsigned short v_rows; /* number of rows */
- unsigned short v_cols; /* number of columns */
- unsigned short v_vlin; /* number of pixel rows
- on screen */
- unsigned short v_clin; /* number of pixel rows
- per character */
- unsigned short v_vcol; /* number of pixel columns
- on screen */
- unsigned short v_ccol; /* number of pixel columns
- per character */
-};
-.EE
-.in
-.IP
-Any parameter may be set to zero, indicating "no change", but if
-multiple parameters are set, they must be self-consistent.
-Note that this does not change the videomode.
-See
-.BR resizecons (8).
-(Since Linux 1.3.3.)
-.P
-The action of the following ioctls depends on the first byte in the struct
-pointed to by
-.IR argp ,
-referred to here as the
-.IR subcode .
-These are legal only for the superuser or the owner of the current terminal.
-Symbolic
-.IR subcode s
-are available in
-.I <linux/tiocl.h>
-since
-Linux 2.5.71.
-.TP
-.BR TIOCLINUX ", " subcode = 0
-Dump the screen.
-Disappeared in Linux 1.1.92.
-(With Linux 1.1.92 or later, read from
-.I /dev/vcsN
-or
-.I /dev/vcsaN
-instead.)
-.TP
-.BR TIOCLINUX ", " subcode = 1
-Get task information.
-Disappeared in Linux 1.1.92.
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_SETSEL
-Set selection.
-.I argp
-points to a
-.IP
-.in +4n
-.EX
-struct {
- char subcode;
- short xs, ys, xe, ye;
- short sel_mode;
-};
-.EE
-.in
-.IP
-.I xs
-and
-.I ys
-are the starting column and row.
-.I xe
-and
-.I ye
-are the ending
-column and row.
-(Upper left corner is row=column=1.)
-.I sel_mode
-is 0 for character-by-character selection,
-1 for word-by-word selection,
-or 2 for line-by-line selection.
-The indicated screen characters are highlighted and saved
-in a kernel buffer.
-.IP
-Since Linux 6.7, using this subcode requires the
-.B CAP_SYS_ADMIN
-capability.
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_PASTESEL
-Paste selection.
-The characters in the selection buffer are
-written to
-.IR fd .
-.IP
-Since Linux 6.7, using this subcode requires the
-.B CAP_SYS_ADMIN
-capability.
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_UNBLANKSCREEN
-Unblank the screen.
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_SELLOADLUT
-Sets contents of a 256-bit look up table defining characters in a "word",
-for word-by-word selection.
-(Since Linux 1.1.32.)
-.IP
-Since Linux 6.7, using this subcode requires the
-.B CAP_SYS_ADMIN
-capability.
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_GETSHIFTSTATE
-.I argp
-points to a char which is set to the value of the kernel
-variable
-.IR shift_state .
-(Since Linux 1.1.32.)
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_GETMOUSEREPORTING
-.I argp
-points to a char which is set to the value of the kernel
-variable
-.IR report_mouse .
-(Since Linux 1.1.33.)
-.TP
-.BR TIOCLINUX ", " subcode = 8
-Dump screen width and height, cursor position, and all the
-character-attribute pairs.
-(Linux 1.1.67 through Linux 1.1.91 only.
-With Linux 1.1.92 or later, read from
-.I /dev/vcsa*
-instead.)
-.TP
-.BR TIOCLINUX ", " subcode = 9
-Restore screen width and height, cursor position, and all the
-character-attribute pairs.
-(Linux 1.1.67 through Linux 1.1.91 only.
-With Linux 1.1.92 or later, write to
-.I /dev/vcsa*
-instead.)
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_SETVESABLANK
-Handles the Power Saving
-feature of the new generation of monitors.
-VESA screen blanking mode is set to
-.IR argp[1] ,
-which governs what
-screen blanking does:
-.RS
-.TP
-.B 0
-Screen blanking is disabled.
-.TP
-.B 1
-The current video adapter
-register settings are saved, then the controller is programmed to turn off
-the vertical synchronization pulses.
-This puts the monitor into "standby" mode.
-If your monitor has an Off_Mode timer, then
-it will eventually power down by itself.
-.TP
-.B 2
-The current settings are saved, then both the vertical and horizontal
-synchronization pulses are turned off.
-This puts the monitor into "off" mode.
-If your monitor has no Off_Mode timer,
-or if you want your monitor to power down immediately when the
-blank_timer times out, then you choose this option.
-.RI ( Caution:
-Powering down frequently will damage the monitor.)
-(Since Linux 1.1.76.)
-.RE
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_SETKMSGREDIRECT
-Change target of kernel messages ("console"):
-by default, and if this is set to
-.BR 0 ,
-messages are written to the currently active VT.
-The VT to write to is a single byte following
-.BR subcode .
-(Since Linux 2.5.36.)
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_GETFGCONSOLE
-Returns the number of VT currently in foreground.
-(Since Linux 2.5.36.)
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_SCROLLCONSOLE
-Scroll the foreground VT by the specified amount of
-.I lines
-down,
-or half the screen if
-.BR 0 .
-.I lines
-is *(((int32_t *)&subcode) + 1).
-(Since Linux 2.5.67.)
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_BLANKSCREEN
-Blank the foreground VT, ignoring "pokes" (typing):
-can only be unblanked explicitly (by switching VTs, to text mode, etc.).
-(Since Linux 2.5.71.)
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_BLANKEDSCREEN
-Returns the number of VT currently blanked,
-.B 0
-if none.
-(Since Linux 2.5.71.)
-.TP
-.BR TIOCLINUX ", " subcode = 16
-Never used.
-.TP
-.BR TIOCLINUX ", " subcode = TIOCL_GETKMSGREDIRECT
-Returns target of kernel messages.
-(Since Linux 2.6.17.)
-.SH RETURN VALUE
-On success, 0 is returned (except where indicated).
-On failure, \-1 is returned, and
-.I errno
-is set to indicate the error.
-.SH ERRORS
-.TP
-.B EBADF
-The file descriptor is invalid.
-.TP
-.B EINVAL
-The file descriptor or
-.I argp
-is invalid.
-.TP
-.B ENOTTY
-The file descriptor is not associated with a character special device,
-or the specified operation does not apply to it.
-.TP
-.B EPERM
-Insufficient permission.
-.SH NOTES
-.BR Warning :
-Do not regard this man page as documentation of the Linux console ioctls.
-This is provided for the curious only, as an alternative to reading the
-source.
-Ioctl's are undocumented Linux internals, liable to be changed
-without warning.
-(And indeed, this page more or less describes the
-situation as of kernel version 1.1.94;
-there are many minor and not-so-minor
-differences with earlier versions.)
-.P
-Very often, ioctls are introduced for communication between the
-kernel and one particular well-known program (fdisk, hdparm, setserial,
-tunelp, loadkeys, selection, setfont, etc.), and their behavior will be
-changed when required by this particular program.
-.P
-Programs using these ioctls will not be portable to other versions
-of UNIX, will not work on older versions of Linux, and will not work
-on future versions of Linux.
-.P
-Use POSIX functions.
-.SH SEE ALSO
-.BR dumpkeys (1),
-.BR kbd_mode (1),
-.BR loadkeys (1),
-.BR mknod (1),
-.BR setleds (1),
-.BR setmetamode (1),
-.BR execve (2),
-.BR fcntl (2),
-.BR ioctl_tty (2),
-.BR ioperm (2),
-.BR termios (3),
-.BR console_codes (4),
-.BR mt (4),
-.BR sd (4),
-.BR tty (4),
-.BR ttyS (4),
-.BR vcs (4),
-.BR vcsa (4),
-.BR charsets (7),
-.BR mapscrn (8),
-.BR resizecons (8),
-.BR setfont (8)
-.P
-.IR /usr/include/linux/kd.h ,
-.I /usr/include/linux/vt.h