]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man4/console_ioctl.4
ldd.1, localedef.1, add_key.2, chroot.2, clone.2, fork.2, futex.2, get_mempolicy...
[thirdparty/man-pages.git] / man4 / console_ioctl.4
1 .\" Copyright (c) 1995 Jim Van Zandt <jrv@vanzandt.mv.com> and aeb
2 .\" Sun Feb 26 11:46:23 MET 1995
3 .\"
4 .\" %%%LICENSE_START(GPLv2+_DOC_FULL)
5 .\" This is free documentation; you can redistribute it and/or
6 .\" modify it under the terms of the GNU General Public License as
7 .\" published by the Free Software Foundation; either version 2 of
8 .\" the License, or (at your option) any later version.
9 .\"
10 .\" The GNU General Public License's references to "object code"
11 .\" and "executables" are to be interpreted as the output of any
12 .\" document formatting or typesetting system, including
13 .\" intermediate and printed output.
14 .\"
15 .\" This manual is distributed in the hope that it will be useful,
16 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
17 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 .\" GNU General Public License for more details.
19 .\"
20 .\" You should have received a copy of the GNU General Public
21 .\" License along with this manual; if not, see
22 .\" <http://www.gnu.org/licenses/>.
23 .\" %%%LICENSE_END
24 .\"
25 .\" Modified, Sun Feb 26 15:04:20 1995, faith@cs.unc.edu
26 .\" Modified, Thu Apr 20 22:08:17 1995, jrv@vanzandt.mv.com
27 .\" Modified, Mon Sep 18 22:32:47 1995, hpa@storm.net (H. Peter Anvin)
28 .\" FIXME The following are not documented:
29 .\" KDFONTOP (since 2.1.111)
30 .\" KDGKBDIACRUC (since 2.6.24)
31 .\" KDSKBDIACR
32 .\" KDSKBDIACRUC (since 2.6.24)
33 .\" KDKBDREP (since 2.1.113)
34 .\" KDMAPDISP (not implemented as at 2.6.27)
35 .\" KDUNMAPDISP (not implemented as at 2.6.27)
36 .\" VT_LOCKSWITCH (since 1.3.47, needs CAP_SYS_TTY_CONFIG)
37 .\" VT_UNLOCKSWITCH (since 1.3.47, needs CAP_SYS_TTY_CONFIG)
38 .\" VT_GETHIFONTMASK (since 2.6.18)
39 .\"
40 .TH CONSOLE_IOCTL 4 2016-07-17 "Linux" "Linux Programmer's Manual"
41 .SH NAME
42 console_ioctl \- ioctls for console terminal and virtual consoles
43 .SH DESCRIPTION
44 The following Linux-specific
45 .BR ioctl (2)
46 requests are supported.
47 Each requires a third argument, assumed here to be
48 .IR argp .
49 .TP
50 .B KDGETLED
51 Get state of LEDs.
52 .I argp
53 points to a
54 .IR char .
55 The lower three bits
56 of
57 .I *argp
58 are set to the state of the LEDs, as follows:
59 .TS
60 l l l.
61 LED_CAP 0x04 caps lock led
62 LED_NUM 0x02 num lock led
63 LED_SCR 0x01 scroll lock led
64 .TE
65 .TP
66 .B KDSETLED
67 Set the LEDs.
68 The LEDs are set to correspond to the lower three bits of
69 .IR argp .
70 However, if a higher order bit is set,
71 the LEDs revert to normal: displaying the state of the
72 keyboard functions of caps lock, num lock, and scroll lock.
73 .LP
74 Before Linux 1.1.54, the LEDs just reflected the state of the corresponding
75 keyboard flags, and KDGETLED/KDSETLED would also change the keyboard
76 flags.
77 Since Linux 1.1.54 the LEDs can be made to display arbitrary
78 information, but by default they display the keyboard flags.
79 The following two ioctls are used to access the keyboard flags.
80 .TP
81 .B KDGKBLED
82 Get keyboard flags CapsLock, NumLock, ScrollLock (not lights).
83 .I argp
84 points to a char which is set to the flag state.
85 The low order three bits (mask 0x7) get the current flag state,
86 and the low order bits of the next nibble (mask 0x70) get
87 the default flag state.
88 (Since Linux 1.1.54.)
89 .TP
90 .B KDSKBLED
91 Set keyboard flags CapsLock, NumLock, ScrollLock (not lights).
92 .I argp
93 has the desired flag state.
94 The low order three bits (mask 0x7) have the flag state,
95 and the low order bits of the next nibble (mask 0x70) have
96 the default flag state.
97 (Since Linux 1.1.54.)
98 .TP
99 .B KDGKBTYPE
100 Get keyboard type.
101 This returns the value KB_101, defined as 0x02.
102 .TP
103 .B KDADDIO
104 Add I/O port as valid.
105 Equivalent to
106 .IR ioperm(arg,1,1) .
107 .TP
108 .B KDDELIO
109 Delete I/O port as valid.
110 Equivalent to
111 .IR ioperm(arg,1,0) .
112 .TP
113 .B KDENABIO
114 Enable I/O to video board.
115 Equivalent to
116 .IR "ioperm(0x3b4, 0x3df-0x3b4+1, 1)" .
117 .TP
118 .B KDDISABIO
119 Disable I/O to video board.
120 Equivalent to
121 .IR "ioperm(0x3b4, 0x3df-0x3b4+1, 0)" .
122 .TP
123 .B KDSETMODE
124 Set text/graphics mode.
125 .I argp
126 is one of these:
127 .TS
128 l l.
129 KD_TEXT 0x00
130 KD_GRAPHICS 0x01
131 .TE
132 .TP
133 .B KDGETMODE
134 Get text/graphics mode.
135 .I argp
136 points to an
137 .I int
138 which is set to one
139 of the above values.
140 .TP
141 .B KDMKTONE
142 Generate tone of specified length.
143 The lower 16 bits of
144 .I argp
145 specify the period in clock cycles,
146 and the upper 16 bits give the duration in msec.
147 If the duration is zero, the sound is turned off.
148 Control returns immediately.
149 For example,
150 .I argp
151 = (125<<16) + 0x637 would specify
152 the beep normally associated with a ctrl-G.
153 (Thus since Linux 0.99pl1; broken in Linux 2.1.49-50.)
154 .TP
155 .B KIOCSOUND
156 Start or stop sound generation.
157 The lower 16 bits of
158 .I argp
159 specify the period in clock cycles
160 (that is,
161 .I argp
162 = 1193180/frequency).
163 .I argp
164 = 0 turns sound off.
165 In either case, control returns immediately.
166 .TP
167 .B GIO_CMAP
168 Get the current default color map from kernel.
169 .I argp
170 points to
171 a 48-byte array.
172 (Since Linux 1.3.3.)
173 .TP
174 .B PIO_CMAP
175 Change the default text-mode color map.
176 .I argp
177 points to a
178 48-byte array which contains, in order, the Red, Green, and Blue
179 values for the 16 available screen colors: 0 is off, and 255 is full
180 intensity.
181 The default colors are, in order: black, dark red, dark
182 green, brown, dark blue, dark purple, dark cyan, light grey, dark
183 grey, bright red, bright green, yellow, bright blue, bright purple,
184 bright cyan and white.
185 (Since Linux 1.3.3.)
186 .TP
187 .B GIO_FONT
188 Gets 256-character screen font in expanded form.
189 .I argp
190 points to an 8192 byte array.
191 Fails with error code
192 .B EINVAL
193 if the
194 currently loaded font is a 512-character font, or if the console is
195 not in text mode.
196 .TP
197 .B GIO_FONTX
198 Gets screen font and associated information.
199 .I argp
200 points to a
201 .I "struct consolefontdesc"
202 (see
203 .BR PIO_FONTX ).
204 On call, the
205 .I charcount
206 field should be set to the maximum number of
207 characters that would fit in the buffer pointed to by
208 .IR chardata .
209 On return, the
210 .I charcount
211 and
212 .I charheight
213 are filled with
214 the respective data for the currently loaded font, and the
215 .I chardata
216 array contains the font data if the initial value of
217 .I charcount
218 indicated enough space was available; otherwise the
219 buffer is untouched and
220 .I errno
221 is set to
222 .BR ENOMEM .
223 (Since Linux 1.3.1.)
224 .TP
225 .B PIO_FONT
226 Sets 256-character screen font.
227 Load font into the EGA/VGA character
228 generator.
229 .I argp
230 points to a 8192 byte map, with 32 bytes per
231 character.
232 Only the first
233 .I N
234 of them are used for an 8x\fIN\fP font
235 (0 <
236 .I N
237 <= 32).
238 This call also invalidates the Unicode mapping.
239 .TP
240 .B PIO_FONTX
241 Sets screen font and associated rendering information.
242 .I argp
243 points to a
244
245 .in +4n
246 .nf
247 struct consolefontdesc {
248 unsigned short charcount; /* characters in font
249 (256 or 512) */
250 unsigned short charheight; /* scan lines per
251 character (1-32) */
252 char *chardata; /* font data in
253 expanded form */
254 };
255 .fi
256 .in
257
258 If necessary, the screen will be appropriately resized, and
259 .B SIGWINCH
260 sent to the appropriate processes.
261 This call also invalidates the Unicode mapping.
262 (Since Linux 1.3.1.)
263 .TP
264 .B PIO_FONTRESET
265 Resets the screen font, size and Unicode mapping to the bootup
266 defaults.
267 .I argp
268 is unused, but should be set to NULL to
269 ensure compatibility with future versions of Linux.
270 (Since Linux 1.3.28.)
271 .TP
272 .B GIO_SCRNMAP
273 Get screen mapping from kernel.
274 .I argp
275 points to an area of size
276 E_TABSZ, which is loaded with the font positions used to display each
277 character.
278 This call is likely to return useless information if the
279 currently loaded font is more than 256 characters.
280 .TP
281 .B GIO_UNISCRNMAP
282 Get full Unicode screen mapping from kernel.
283 .I argp
284 points to an
285 area of size
286 .IR "E_TABSZ*sizeof(unsigned short)" ,
287 which is loaded with the
288 Unicodes each character represent.
289 A special set of Unicodes,
290 starting at U+F000, are used to represent "direct to font" mappings.
291 (Since Linux 1.3.1.)
292 .TP
293 .B PIO_SCRNMAP
294 Loads the "user definable" (fourth) table in the kernel which maps
295 bytes into console screen symbols.
296 .I argp
297 points to an area of
298 size E_TABSZ.
299 .TP
300 .B PIO_UNISCRNMAP
301 Loads the "user definable" (fourth) table in the kernel which maps
302 bytes into Unicodes, which are then translated into screen symbols
303 according to the currently loaded Unicode-to-font map.
304 Special Unicodes starting at U+F000 can be used to map directly to the font
305 symbols.
306 (Since Linux 1.3.1.)
307 .TP
308 .B GIO_UNIMAP
309 Get Unicode-to-font mapping from kernel.
310 .I argp
311 points to a
312
313 .in +4n
314 .nf
315 struct unimapdesc {
316 unsigned short entry_ct;
317 struct unipair *entries;
318 };
319 .fi
320 .in
321
322 where
323 .I entries
324 points to an array of
325
326 .in +4n
327 .nf
328 struct unipair {
329 unsigned short unicode;
330 unsigned short fontpos;
331 };
332 .fi
333 .in
334
335 (Since Linux 1.1.92.)
336 .TP
337 .B PIO_UNIMAP
338 Put unicode-to-font mapping in kernel.
339 .I argp
340 points to a
341 .IR "struct unimapdesc" .
342 (Since Linux 1.1.92)
343 .TP
344 .B PIO_UNIMAPCLR
345 Clear table, possibly advise hash algorithm.
346 .I argp
347 points to a
348
349 .in +4n
350 .nf
351 struct unimapinit {
352 unsigned short advised_hashsize; /* 0 if no opinion */
353 unsigned short advised_hashstep; /* 0 if no opinion */
354 unsigned short advised_hashlevel; /* 0 if no opinion */
355 };
356 .fi
357 .in
358
359 (Since Linux 1.1.92.)
360 .TP
361 .B KDGKBMODE
362 Gets current keyboard mode.
363 .I argp
364 points to a
365 .I long
366 which is set to one
367 of these:
368 .TS
369 l l.
370 K_RAW 0x00
371 K_XLATE 0x01
372 K_MEDIUMRAW 0x02
373 K_UNICODE 0x03
374 .TE
375 .TP
376 .B KDSKBMODE
377 Sets current keyboard mode.
378 .I argp
379 is a
380 .I long
381 equal to one of the above values.
382 .TP
383 .B KDGKBMETA
384 Gets meta key handling mode.
385 .I argp
386 points to a
387 .I long
388 which is
389 set to one of these:
390 .TS
391 l l l.
392 K_METABIT 0x03 set high order bit
393 K_ESCPREFIX 0x04 escape prefix
394 .TE
395 .TP
396 .B KDSKBMETA
397 Sets meta key handling mode.
398 .I argp
399 is a
400 .I long
401 equal to one of the above values.
402 .TP
403 .B KDGKBENT
404 Gets one entry in key translation table (keycode to action code).
405 .I argp
406 points to a
407
408 .in +4n
409 .nf
410 struct kbentry {
411 unsigned char kb_table;
412 unsigned char kb_index;
413 unsigned short kb_value;
414 };
415 .fi
416 .in
417
418 with the first two members filled in:
419 .I kb_table
420 selects the key table (0 <=
421 .I kb_table
422 < MAX_NR_KEYMAPS),
423 and
424 .IR kb_index
425 is the keycode (0 <=
426 .I kb_index
427 < NR_KEYS).
428 .I kb_value
429 is set to the corresponding action code,
430 or K_HOLE if there is no such key,
431 or K_NOSUCHMAP if
432 .I kb_table
433 is invalid.
434 .TP
435 .B KDSKBENT
436 Sets one entry in translation table.
437 .I argp
438 points to a
439 .IR "struct kbentry" .
440 .TP
441 .B KDGKBSENT
442 Gets one function key string.
443 .I argp
444 points to a
445
446 .in +4n
447 .nf
448 struct kbsentry {
449 unsigned char kb_func;
450 unsigned char kb_string[512];
451 };
452 .fi
453 .in
454
455 .I kb_string
456 is set to the (null-terminated) string corresponding to
457 the
458 .IR kb_func th
459 function key action code.
460 .TP
461 .B KDSKBSENT
462 Sets one function key string entry.
463 .I argp
464 points to a
465 .IR "struct kbsentry" .
466 .TP
467 .B KDGKBDIACR
468 Read kernel accent table.
469 .I argp
470 points to a
471
472 .in +4n
473 .nf
474 struct kbdiacrs {
475 unsigned int kb_cnt;
476 struct kbdiacr kbdiacr[256];
477 };
478 .fi
479 .in
480
481 where
482 .I kb_cnt
483 is the number of entries in the array, each of which
484 is a
485
486 .in +4n
487 .nf
488 struct kbdiacr {
489 unsigned char diacr;
490 unsigned char base;
491 unsigned char result;
492 };
493 .fi
494 .in
495 .TP
496 .B KDGETKEYCODE
497 Read kernel keycode table entry (scan code to keycode).
498 .I argp
499 points to a
500
501 .in +4n
502 .nf
503 struct kbkeycode {
504 unsigned int scancode;
505 unsigned int keycode;
506 };
507 .fi
508 .in
509
510 .I keycode
511 is set to correspond to the given
512 .IR scancode .
513 (89 <=
514 .I scancode
515 <= 255 only.
516 For 1 <=
517 .I scancode
518 <= 88,
519 .IR keycode == scancode .)
520 (Since Linux 1.1.63.)
521 .TP
522 .B KDSETKEYCODE
523 Write kernel keycode table entry.
524 .I argp
525 points to a
526 .IR "struct kbkeycode" .
527 (Since Linux 1.1.63.)
528 .TP
529 .B KDSIGACCEPT
530 The calling process indicates its willingness to accept the signal
531 .I argp
532 when it is generated by pressing an appropriate key combination.
533 (1 <=
534 .I argp
535 <= NSIG).
536 (See
537 .IR spawn_console ()
538 in
539 .IR linux/drivers/char/keyboard.c .)
540 .TP
541 .B VT_OPENQRY
542 Returns the first available (non-opened) console.
543 .I argp
544 points to an
545 .I int
546 which is set to the
547 number of the vt (1 <=
548 .I *argp
549 <= MAX_NR_CONSOLES).
550 .TP
551 .B VT_GETMODE
552 Get mode of active vt.
553 .I argp
554 points to a
555
556 .in +4n
557 .nf
558 struct vt_mode {
559 char mode; /* vt mode */
560 char waitv; /* if set, hang on writes if not active */
561 short relsig; /* signal to raise on release req */
562 short acqsig; /* signal to raise on acquisition */
563 short frsig; /* unused (set to 0) */
564 };
565 .fi
566 .in
567
568 which is set to the mode of the active vt.
569 .I mode
570 is set to one of these values:
571 .TS
572 l l.
573 VT_AUTO auto vt switching
574 VT_PROCESS process controls switching
575 VT_ACKACQ acknowledge switch
576 .TE
577 .TP
578 .B VT_SETMODE
579 Set mode of active vt.
580 .I argp
581 points to a
582 .IR "struct vt_mode" .
583 .TP
584 .B VT_GETSTATE
585 Get global vt state info.
586 .I argp
587 points to a
588
589 .in +4n
590 .nf
591 struct vt_stat {
592 unsigned short v_active; /* active vt */
593 unsigned short v_signal; /* signal to send */
594 unsigned short v_state; /* vt bit mask */
595 };
596 .fi
597 .in
598
599 For each vt in use, the corresponding bit in the
600 .I v_state
601 member is set.
602 (Kernels 1.0 through 1.1.92.)
603 .TP
604 .B VT_RELDISP
605 Release a display.
606 .TP
607 .B VT_ACTIVATE
608 Switch to vt
609 .IR argp
610 (1 <=
611 .I argp
612 <= MAX_NR_CONSOLES).
613 .TP
614 .B VT_WAITACTIVE
615 Wait until vt
616 .I argp
617 has been activated.
618 .TP
619 .B VT_DISALLOCATE
620 Deallocate the memory associated with vt
621 .IR argp .
622 (Since Linux 1.1.54.)
623 .TP
624 .B VT_RESIZE
625 Set the kernel's idea of screensize.
626 .I argp
627 points to a
628
629 .in +4n
630 .nf
631 struct vt_sizes {
632 unsigned short v_rows; /* # rows */
633 unsigned short v_cols; /* # columns */
634 unsigned short v_scrollsize; /* no longer used */
635 };
636 .fi
637 .in
638
639 Note that this does not change the videomode.
640 See
641 .BR resizecons (8).
642 (Since Linux 1.1.54.)
643 .TP
644 .B VT_RESIZEX
645 Set the kernel's idea of various screen parameters.
646 .I argp
647 points to a
648
649 .in +4n
650 .nf
651 struct vt_consize {
652 unsigned short v_rows; /* number of rows */
653 unsigned short v_cols; /* number of columns */
654 unsigned short v_vlin; /* number of pixel rows
655 on screen */
656 unsigned short v_clin; /* number of pixel rows
657 per character */
658 unsigned short v_vcol; /* number of pixel columns
659 on screen */
660 unsigned short v_ccol; /* number of pixel columns
661 per character */
662 };
663 .fi
664 .in
665
666 Any parameter may be set to zero, indicating "no change", but if
667 multiple parameters are set, they must be self-consistent.
668 Note that this does not change the videomode.
669 See
670 .BR resizecons (8).
671 (Since Linux 1.3.3.)
672 .PP
673 The action of the following ioctls depends on the first byte in the struct
674 pointed to by
675 .IR argp ,
676 referred to here as the
677 .IR subcode .
678 These are legal only for the superuser or the owner of the current terminal.
679 .TP
680 .B "TIOCLINUX, subcode=0"
681 Dump the screen.
682 Disappeared in Linux 1.1.92. (With kernel 1.1.92 or later, read from
683 .I /dev/vcsN
684 or
685 .I /dev/vcsaN
686 instead.)
687 .TP
688 .B "TIOCLINUX, subcode=1"
689 Get task information.
690 Disappeared in Linux 1.1.92.
691 .TP
692 .B "TIOCLINUX, subcode=2"
693 Set selection.
694 .I argp
695 points to a
696 .in +4n
697 .nf
698
699 struct {
700 char subcode;
701 short xs, ys, xe, ye;
702 short sel_mode;
703 };
704
705 .fi
706 .in
707 .I xs
708 and
709 .I ys
710 are the starting column and row.
711 .I xe
712 and
713 .I ye
714 are the ending
715 column and row.
716 (Upper left corner is row=column=1.)
717 .I sel_mode
718 is 0 for character-by-character selection,
719 1 for word-by-word selection,
720 or 2 for line-by-line selection.
721 The indicated screen characters are highlighted and saved
722 in the static array sel_buffer in
723 .IR devices/char/console.c .
724 .TP
725 .B "TIOCLINUX, subcode=3"
726 Paste selection.
727 The characters in the selection buffer are
728 written to
729 .IR fd .
730 .TP
731 .B "TIOCLINUX, subcode=4"
732 Unblank the screen.
733 .TP
734 .B "TIOCLINUX, subcode=5"
735 Sets contents of a 256-bit look up table defining characters in a "word",
736 for word-by-word selection.
737 (Since Linux 1.1.32.)
738 .TP
739 .B "TIOCLINUX, subcode=6"
740 .I argp
741 points to a char which is set to the value of the kernel
742 variable
743 .IR shift_state .
744 (Since Linux 1.1.32.)
745 .TP
746 .B "TIOCLINUX, subcode=7"
747 .I argp
748 points to a char which is set to the value of the kernel
749 variable
750 .IR report_mouse .
751 (Since Linux 1.1.33.)
752 .TP
753 .B "TIOCLINUX, subcode=8"
754 Dump screen width and height, cursor position, and all the
755 character-attribute pairs.
756 (Kernels 1.1.67 through 1.1.91 only.
757 With kernel 1.1.92 or later, read from
758 .I /dev/vcsa*
759 instead.)
760 .TP
761 .B "TIOCLINUX, subcode=9"
762 Restore screen width and height, cursor position, and all the
763 character-attribute pairs.
764 (Kernels 1.1.67 through 1.1.91 only.
765 With kernel 1.1.92 or later, write to
766 .I /dev/vcsa*
767 instead.)
768 .TP
769 .B "TIOCLINUX, subcode=10"
770 Handles the Power Saving
771 feature of the new generation of monitors.
772 VESA screen blanking mode is set to
773 .IR argp[1] ,
774 which governs what
775 screen blanking does:
776 .RS
777 .IP 0: 3
778 Screen blanking is disabled.
779 .IP 1:
780 The current video adapter
781 register settings are saved, then the controller is programmed to turn off
782 the vertical synchronization pulses.
783 This puts the monitor into "standby" mode.
784 If your monitor has an Off_Mode timer, then
785 it will eventually power down by itself.
786 .IP 2:
787 The current settings are saved, then both the vertical and horizontal
788 synchronization pulses are turned off.
789 This puts the monitor into "off" mode.
790 If your monitor has no Off_Mode timer,
791 or if you want your monitor to power down immediately when the
792 blank_timer times out, then you choose this option.
793 .RI ( Caution:
794 Powering down frequently will damage the monitor.)
795 (Since Linux 1.1.76.)
796 .RE
797 .SH RETURN VALUE
798 On success, 0 is returned.
799 On error, \-1 is returned, and
800 .I errno
801 is set.
802 .SH ERRORS
803 .I errno
804 may take on these values:
805 .TP
806 .B EBADF
807 The file descriptor is invalid.
808 .TP
809 .B ENOTTY
810 The file descriptor is not associated with a character special device,
811 or the specified request does not apply to it.
812 .TP
813 .B EINVAL
814 The file descriptor or
815 .I argp
816 is invalid.
817 .TP
818 .B EPERM
819 Insufficient permission.
820 .SH NOTES
821 .BR Warning :
822 Do not regard this man page as documentation of the Linux console ioctls.
823 This is provided for the curious only, as an alternative to reading the
824 source.
825 Ioctl's are undocumented Linux internals, liable to be changed
826 without warning.
827 (And indeed, this page more or less describes the
828 situation as of kernel version 1.1.94;
829 there are many minor and not-so-minor
830 differences with earlier versions.)
831
832 Very often, ioctls are introduced for communication between the
833 kernel and one particular well-known program (fdisk, hdparm, setserial,
834 tunelp, loadkeys, selection, setfont, etc.), and their behavior will be
835 changed when required by this particular program.
836
837 Programs using these ioctls will not be portable to other versions
838 of UNIX, will not work on older versions of Linux, and will not work
839 on future versions of Linux.
840
841 Use POSIX functions.
842 .SH SEE ALSO
843 .BR dumpkeys (1),
844 .BR kbd_mode (1),
845 .BR loadkeys (1),
846 .BR mknod (1),
847 .BR setleds (1),
848 .BR setmetamode (1),
849 .BR execve (2),
850 .BR fcntl (2),
851 .BR ioperm (2),
852 .BR termios (3),
853 .BR console_codes (4),
854 .BR mt (4),
855 .BR sd (4),
856 .BR tty (4),
857 .BR tty_ioctl (4),
858 .BR ttyS (4),
859 .BR vcs (4),
860 .BR vcsa (4),
861 .BR charsets (7),
862 .BR mapscrn (8),
863 .BR resizecons (8),
864 .BR setfont (8)
865
866 .IR /usr/include/linux/kd.h ,
867 .I /usr/include/linux/vt.h