]> git.ipfire.org Git - thirdparty/man-pages.git/blob - man4/console_ioctl.4
getent.1, _syscall.2, acct.2, adjtimex.2, bdflush.2, brk.2, cacheflush.2, getsid...
[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 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
8 .\"
9 .\" The GNU General Public License's references to "object code"
10 .\" and "executables" are to be interpreted as the output of any
11 .\" document formatting or typesetting system, including
12 .\" intermediate and printed output.
13 .\"
14 .\" This manual is distributed in the hope that it will be useful,
15 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
16 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 .\" GNU General Public License for more details.
18 .\"
19 .\" You should have received a copy of the GNU General Public
20 .\" License along with this manual; if not, see
21 .\" <http://www.gnu.org/licenses/>.
22 .\"
23 .\" Modified, Sun Feb 26 15:04:20 1995, faith@cs.unc.edu
24 .\" Modified, Thu Apr 20 22:08:17 1995, jrv@vanzandt.mv.com
25 .\" Modified, Mon Sep 18 22:32:47 1995, hpa@storm.net (H. Peter Anvin)
26 .\" FIXME The following are not documented:
27 .\" KDFONTOP (since 2.1.111)
28 .\" KDGKBDIACRUC (since 2.6.24)
29 .\" KDSKBDIACR
30 .\" KDSKBDIACRUC (since 2.6.24)
31 .\" KDKBDREP (since 2.1.113)
32 .\" KDMAPDISP (not implemented as at 2.6.27)
33 .\" KDUNMAPDISP (not implemented as at 2.6.27)
34 .\" VT_LOCKSWITCH (since 1.3.47, needs CAP_SYS_TTY_CONFIG)
35 .\" VT_UNLOCKSWITCH (since 1.3.47, needs CAP_SYS_TTY_CONFIG)
36 .\" VT_GETHIFONTMASK (since 2.6.18)
37 .\"
38 .TH CONSOLE_IOCTL 4 2009-02-28 "Linux" "Linux Programmer's Manual"
39 .SH NAME
40 console_ioctl \- ioctl's for console terminal and virtual consoles
41 .SH DESCRIPTION
42 The following Linux-specific
43 .BR ioctl (2)
44 requests are supported.
45 Each requires a third argument, assumed here to be \fIargp\fP.
46 .IP \fBKDGETLED\fP
47 Get state of LEDs.
48 \fIargp\fP points to a \fIchar\fP.
49 The lower three bits
50 of \fI*argp\fP are set to the state of the LEDs, as follows:
51
52 LED_CAP 0x04 caps lock led
53 LEC_NUM 0x02 num lock led
54 LED_SCR 0x01 scroll lock led
55 .IP \fBKDSETLED\fP
56 Set the LEDs.
57 The LEDs are set to correspond to the lower three bits of
58 \fIargp\fP.
59 However, if a higher order bit is set,
60 the LEDs revert to normal: displaying the state of the
61 keyboard functions of caps lock, num lock, and scroll lock.
62 .LP
63 Before 1.1.54, the LEDs just reflected the state of the corresponding
64 keyboard flags, and KDGETLED/KDSETLED would also change the keyboard
65 flags.
66 Since 1.1.54 the leds can be made to display arbitrary
67 information, but by default they display the keyboard flags.
68 The following two ioctl's are used to access the keyboard flags.
69 .IP \fBKDGKBLED\fP
70 Get keyboard flags CapsLock, NumLock, ScrollLock (not lights).
71 \fIargp\fP points to a char which is set to the flag state.
72 The low order three bits (mask 0x7) get the current flag state,
73 and the low order bits of the next nibble (mask 0x70) get
74 the default flag state.
75 (Since 1.1.54.)
76 .IP \fBKDSKBLED\fP
77 Set keyboard flags CapsLock, NumLock, ScrollLock (not lights).
78 \fIargp\fP has the desired flag state.
79 The low order three bits (mask 0x7) have the flag state,
80 and the low order bits of the next nibble (mask 0x70) have
81 the default flag state.
82 (Since 1.1.54.)
83 .IP \fBKDGKBTYPE\fP
84 Get keyboard type.
85 This returns the value KB_101, defined as 0x02.
86 .IP \fBKDADDIO\fP
87 Add I/O port as valid.
88 Equivalent to \fIioperm(arg,1,1)\fP.
89 .IP \fBKDDELIO\fP
90 Delete I/O port as valid.
91 Equivalent to \fIioperm(arg,1,0)\fP.
92 .IP \fBKDENABIO\fP
93 Enable I/O to video board.
94 Equivalent to \fIioperm(0x3b4, 0x3df-0x3b4+1, 1)\fP.
95 .IP \fBKDDISABIO\fP
96 Disable I/O to video board.
97 Equivalent to \fIioperm(0x3b4, 0x3df-0x3b4+1, 0)\fP.
98 .IP \fBKDSETMODE\fP
99 Set text/graphics mode.
100 \fIargp\fP is one of these:
101
102 KD_TEXT 0x00
103 KD_GRAPHICS 0x01
104 .IP \fBKDGETMODE\fP
105 Get text/graphics mode.
106 \fIargp\fP points to a \fIlong\fP which is set to one
107 of the above values.
108 .IP \fBKDMKTONE\fP
109 Generate tone of specified length.
110 The lower 16 bits of \fIargp\fP specify the period in clock cycles,
111 and the upper 16 bits give the duration in msec.
112 If the duration is zero, the sound is turned off.
113 Control returns immediately.
114 For example, \fIargp\fP = (125<<16) + 0x637 would specify
115 the beep normally associated with a ctrl-G.
116 (Thus since 0.99pl1; broken in 2.1.49-50.)
117 .IP \fBKIOCSOUND\fP
118 Start or stop sound generation.
119 The lower 16 bits of
120 \fIargp\fP specify the period in clock cycles
121 (that is, \fIargp\fP = 1193180/frequency).
122 \fIargp\fP = 0 turns sound off.
123 In either case, control returns immediately.
124 .IP \fBGIO_CMAP\fP
125 Get the current default color map from kernel.
126 \fIargp\fP points to
127 a 48-byte array.
128 (Since 1.3.3.)
129 .IP \fBPIO_CMAP\fP
130 Change the default text-mode color map.
131 \fIargp\fP points to a
132 48-byte array which contains, in order, the Red, Green, and Blue
133 values for the 16 available screen colors: 0 is off, and 255 is full
134 intensity.
135 The default colors are, in order: black, dark red, dark
136 green, brown, dark blue, dark purple, dark cyan, light grey, dark
137 grey, bright red, bright green, yellow, bright blue, bright purple,
138 bright cyan and white.
139 (Since 1.3.3.)
140 .IP \fBGIO_FONT\fP
141 Gets 256-character screen font in expanded form.
142 \fIargp\fP points to an 8192 byte array.
143 Fails with error code \fBEINVAL\fP if the
144 currently loaded font is a 512-character font, or if the console is
145 not in text mode.
146 .IP \fBGIO_FONTX\fP
147 Gets screen font and associated information.
148 \fIargp\fP points to a
149 \fIstruct consolefontdesc\fP (see \fBPIO_FONTX\fP).
150 On call, the
151 \fIcharcount\fP field should be set to the maximum number of
152 characters that would fit in the buffer pointed to by \fIchardata\fP.
153 On return, the \fIcharcount\fP and \fIcharheight\fP are filled with
154 the respective data for the currently loaded font, and the
155 \fIchardata\fP array contains the font data if the initial value of
156 \fIcharcount\fP indicated enough space was available; otherwise the
157 buffer is untouched and \fIerrno\fP is set to \fBENOMEM\fP.
158 (Since 1.3.1.)
159 .IP \fBPIO_FONT\fP
160 Sets 256-character screen font.
161 Load font into the EGA/VGA character
162 generator.
163 \fIargp\fP points to a 8192 byte map, with 32 bytes per
164 character.
165 Only first \fIN\fP of them are used for an 8x\fIN\fP font
166 (0 < \fIN\fP <= 32).
167 This call also invalidates the Unicode mapping.
168 .IP \fBPIO_FONTX\fP
169 Sets screen font and associated rendering information.
170 \fIargp\fP
171 points to a
172
173 .in +4n
174 .nf
175 struct consolefontdesc {
176 unsigned short charcount; /* characters in font
177 (256 or 512) */
178 unsigned short charheight; /* scan lines per
179 character (1-32) */
180 char *chardata; /* font data in
181 expanded form */
182 };
183 .fi
184 .in
185
186 If necessary, the screen will be appropriately resized, and
187 \fBSIGWINCH\fP sent to the appropriate processes.
188 This call also invalidates the Unicode mapping.
189 (Since 1.3.1.)
190 .IP \fBPIO_FONTRESET\fP
191 Resets the screen font, size and Unicode mapping to the bootup
192 defaults.
193 \fIargp\fP is unused, but should be set to NULL to
194 ensure compatibility with future versions of Linux.
195 (Since 1.3.28.)
196 .IP \fBGIO_SCRNMAP\fP
197 Get screen mapping from kernel.
198 \fIargp\fP points to an area of size
199 E_TABSZ, which is loaded with the font positions used to display each
200 character.
201 This call is likely to return useless information if the
202 currently loaded font is more than 256 characters.
203 .IP \fBGIO_UNISCRNMAP\fP
204 Get full Unicode screen mapping from kernel.
205 \fIargp\fP points to an
206 area of size E_TABSZ*sizeof(unsigned short), which is loaded with the
207 Unicodes each character represent.
208 A special set of Unicodes,
209 starting at U+F000, are used to represent "direct to font" mappings.
210 (Since 1.3.1.)
211 .IP \fBPIO_SCRNMAP\fP
212 Loads the "user definable" (fourth) table in the kernel which maps
213 bytes into console screen symbols.
214 \fIargp\fP points to an area of
215 size E_TABSZ.
216 .IP \fBPIO_UNISCRNMAP\fP
217 Loads the "user definable" (fourth) table in the kernel which maps
218 bytes into Unicodes, which are then translated into screen symbols
219 according to the currently loaded Unicode-to-font map.
220 Special Unicodes starting at U+F000 can be used to map directly to the font
221 symbols.
222 (Since 1.3.1.)
223 .IP \fBGIO_UNIMAP\fP
224 Get Unicode-to-font mapping from kernel.
225 \fIargp\fP points to a
226
227 .in +4n
228 .nf
229 struct unimapdesc {
230 unsigned short entry_ct;
231 struct unipair *entries;
232 };
233 .fi
234 .in
235
236 where \fIentries\fP points to an array of
237
238 .in +4n
239 .nf
240 struct unipair {
241 unsigned short unicode;
242 unsigned short fontpos;
243 };
244 .fi
245 .in
246
247 (Since 1.1.92.)
248 .IP \fBPIO_UNIMAP\fP
249 Put unicode-to-font mapping in kernel.
250 \fIargp\fP points to a
251 \fIstruct unimapdesc\fP.
252 (Since 1.1.92)
253 .IP \fBPIO_UNIMAPCLR\fP
254 Clear table, possibly advise hash algorithm.
255 \fIargp\fP points to a
256
257 .in +4n
258 .nf
259 struct unimapinit {
260 unsigned short advised_hashsize; /* 0 if no opinion */
261 unsigned short advised_hashstep; /* 0 if no opinion */
262 unsigned short advised_hashlevel; /* 0 if no opinion */
263 };
264 .fi
265 .in
266
267 (Since 1.1.92.)
268 .IP \fBKDGKBMODE\fP
269 Gets current keyboard mode.
270 \fIargp\fP points to a \fIlong\fP which is set to one
271 of these:
272
273 K_RAW 0x00
274 K_XLATE 0x01
275 K_MEDIUMRAW 0x02
276 K_UNICODE 0x03
277 .IP \fBKDSKBMODE\fP
278 Sets current keyboard mode.
279 \fIargp\fP is a \fIlong\fP equal to one of the above values.
280 .IP \fBKDGKBMETA\fP
281 Gets meta key handling mode.
282 \fIargp\fP points to a \fIlong\fP which is
283 set to one of these:
284
285 K_METABIT 0x03 set high order bit
286 K_ESCPREFIX 0x04 escape prefix
287 .IP \fBKDSKBMETA\fP
288 Sets meta key handling mode.
289 \fIargp\fP is a \fIlong\fP equal to one of the above values.
290 .IP \fBKDGKBENT\fP
291 Gets one entry in key translation table (keycode to action code).
292 \fIargp\fP points to a
293
294 .in +4n
295 .nf
296 struct kbentry {
297 unsigned char kb_table;
298 unsigned char kb_index;
299 unsigned short kb_value;
300 };
301 .fi
302 .in
303
304 with the first two members filled in:
305 \fIkb_table\fP selects the key table (0 <= \fIkb_table\fP < MAX_NR_KEYMAPS),
306 and \fIkb_index\fP is the keycode (0 <= \fIkb_index\fP < NR_KEYS).
307 \fIkb_value\fP is set to the corresponding action code,
308 or K_HOLE if there is no such key,
309 or K_NOSUCHMAP if \fIkb_table\fP is invalid.
310 .IP \fBKDSKBENT\fP
311 Sets one entry in translation table.
312 \fIargp\fP points to
313 a \fIstruct kbentry\fP.
314 .IP \fBKDGKBSENT\fP
315 Gets one function key string.
316 \fIargp\fP points to a
317
318 .in +4n
319 .nf
320 struct kbsentry {
321 unsigned char kb_func;
322 unsigned char kb_string[512];
323 };
324 .fi
325 .in
326
327 \fIkb_string\fP is set to the (null-terminated) string corresponding to
328 the \fIkb_func\fPth function key action code.
329 .IP \fBKDSKBSENT\fP
330 Sets one function key string entry.
331 \fIargp\fP points to
332 a \fIstruct kbsentry\fP.
333 .IP \fBKDGKBDIACR\fP
334 Read kernel accent table.
335 \fIargp\fP points to a
336
337 .in +4n
338 .nf
339 struct kbdiacrs {
340 unsigned int kb_cnt;
341 struct kbdiacr kbdiacr[256];
342 };
343 .fi
344 .in
345
346 where \fIkb_cnt\fP is the number of entries in the array, each of which
347 is a
348
349 .in +4n
350 .nf
351 struct kbdiacr {
352 unsigned char diacr;
353 unsigned char base;
354 unsigned char result;
355 };
356 .fi
357 .in
358 .IP \fBKDGETKEYCODE\fP
359 Read kernel keycode table entry (scan code to keycode).
360 \fIargp\fP points to a
361
362 .in +4n
363 .nf
364 struct kbkeycode {
365 unsigned int scancode;
366 unsigned int keycode;
367 };
368 .fi
369 .in
370
371 \fIkeycode\fP is set to correspond to the given \fIscancode\fP.
372 (89 <= \fIscancode\fP <= 255 only.
373 For 1 <= \fIscancode\fP <= 88, \fIkeycode\fP==\fIscancode\fP.)
374 (Since 1.1.63.)
375 .IP \fBKDSETKEYCODE\fP
376 Write kernel keycode table entry.
377 \fIargp\fP points to
378 a \fIstruct kbkeycode\fP.
379 (Since 1.1.63.)
380 .IP \fBKDSIGACCEPT\fP
381 The calling process indicates its willingness to accept the signal
382 \fIargp\fP when it is generated by pressing an appropriate key combination.
383 (1 <= \fIargp\fP <= NSIG).
384 (See spawn_console() in linux/drivers/char/keyboard.c.)
385 .IP \fBVT_OPENQRY\fP
386 Returns the first available (non-opened) console.
387 \fIargp\fP points to an \fIint\fP which is set to the
388 number of the vt (1 <= \fI*argp\fP <= MAX_NR_CONSOLES).
389 .IP \fBVT_GETMODE\fP
390 Get mode of active vt.
391 \fIargp\fP points to a
392
393 .in +4n
394 .nf
395 struct vt_mode {
396 char mode; /* vt mode */
397 char waitv; /* if set, hang on writes if not active */
398 short relsig; /* signal to raise on release req */
399 short acqsig; /* signal to raise on acquisition */
400 short frsig; /* unused (set to 0) */
401 };
402 .fi
403 .in
404
405 which is set to the mode of the active vt.
406 \fImode\fP is set to one of these values:
407
408 VT_AUTO auto vt switching
409 VT_PROCESS process controls switching
410 VT_ACKACQ acknowledge switch
411 .IP \fBVT_SETMODE\fP
412 Set mode of active vt.
413 \fIargp\fP points to
414 a \fIstruct vt_mode\fP.
415 .IP \fBVT_GETSTATE\fP
416 Get global vt state info.
417 \fIargp\fP points to a
418
419 .in +4n
420 .nf
421 struct vt_stat {
422 unsigned short v_active; /* active vt */
423 unsigned short v_signal; /* signal to send */
424 unsigned short v_state; /* vt bit mask */
425 };
426 .fi
427 .in
428
429 For each vt in use, the corresponding bit in the \fIv_state\fP member is set.
430 (Kernels 1.0 through 1.1.92.)
431 .IP \fBVT_RELDISP\fP
432 Release a display.
433 .IP \fBVT_ACTIVATE\fP
434 Switch to vt \fIargp\fP (1 <= \fIargp\fP <= MAX_NR_CONSOLES).
435 .IP \fBVT_WAITACTIVE\fP
436 Wait until vt \fIargp\fP has been activated.
437 .IP \fBVT_DISALLOCATE\fP
438 Deallocate the memory associated with vt \fIargp\fP.
439 (Since 1.1.54.)
440 .IP \fBVT_RESIZE\fP
441 Set the kernel's idea of screensize.
442 \fIargp\fP points to a
443
444 .in +4n
445 .nf
446 struct vt_sizes {
447 unsigned short v_rows; /* # rows */
448 unsigned short v_cols; /* # columns */
449 unsigned short v_scrollsize; /* no longer used */
450 };
451 .fi
452 .in
453
454 Note that this does not change the videomode.
455 See
456 .BR resizecons (8).
457 (Since 1.1.54.)
458 .IP \fBVT_RESIZEX\fP
459 Set the kernel's idea of various screen parameters.
460 \fIargp\fP points to a
461
462 .in +4n
463 .nf
464 struct vt_consize {
465 unsigned short v_rows; /* number of rows */
466 unsigned short v_cols; /* number of columns */
467 unsigned short v_vlin; /* number of pixel rows
468 on screen */
469 unsigned short v_clin; /* number of pixel rows
470 per character */
471 unsigned short v_vcol; /* number of pixel columns
472 on screen */
473 unsigned short v_ccol; /* number of pixel columns
474 per character */
475 };
476 .fi
477 .in
478
479 Any parameter may be set to zero, indicating "no change", but if
480 multiple parameters are set, they must be self-consistent.
481 Note that this does not change the videomode.
482 See
483 .BR resizecons (8).
484 (Since 1.3.3.)
485 .PP
486 The action of the following ioctls depends on the first byte in the struct
487 pointed to by \fIargp\fP, referred to here as the \fIsubcode\fP.
488 These are legal only for the superuser or the owner of the current terminal.
489 .IP "\fBTIOCLINUX, subcode=0\fP"
490 Dump the screen.
491 Disappeared in 1.1.92. (With kernel 1.1.92 or later, read from
492 /dev/vcsN or /dev/vcsaN instead.)
493 .IP "\fBTIOCLINUX, subcode=1\fP"
494 Get task information.
495 Disappeared in 1.1.92.
496 .IP "\fBTIOCLINUX, subcode=2\fP"
497 Set selection.
498 \fIargp\fP points to a
499 .in +4n
500 .nf
501
502 struct {
503 char subcode;
504 short xs, ys, xe, ye;
505 short sel_mode;
506 };
507
508 .fi
509 .in
510 \fIxs\fP and \fIys\fP are the starting column and row.
511 \fIxe\fP and \fIye\fP are the ending
512 column and row.
513 (Upper left corner is row=column=1.)
514 \fIsel_mode\fP is 0 for character-by-character selection,
515 1 for word-by-word selection,
516 or 2 for line-by-line selection.
517 The indicated screen characters are highlighted and saved
518 in the static array sel_buffer in devices/char/console.c.
519 .IP "\fBTIOCLINUX, subcode=3\fP"
520 Paste selection.
521 The characters in the selection buffer are
522 written to \fIfd\fP.
523 .IP "\fBTIOCLINUX, subcode=4\fP"
524 Unblank the screen.
525 .IP "\fBTIOCLINUX, subcode=5\fP"
526 Sets contents of a 256-bit look up table defining characters in a "word",
527 for word-by-word selection.
528 (Since 1.1.32.)
529 .IP "\fBTIOCLINUX, subcode=6\fP"
530 \fIargp\fP points to a char which is set to the value of the kernel
531 variable \fIshift_state\fP.
532 (Since 1.1.32.)
533 .IP "\fBTIOCLINUX, subcode=7\fP"
534 \fIargp\fP points to a char which is set to the value of the kernel
535 variable \fIreport_mouse\fP.
536 (Since 1.1.33.)
537 .IP "\fBTIOCLINUX, subcode=8\fP"
538 Dump screen width and height, cursor position, and all the
539 character-attribute pairs.
540 (Kernels 1.1.67 through 1.1.91 only.
541 With kernel 1.1.92 or later, read from /dev/vcsa* instead.)
542 .IP "\fBTIOCLINUX, subcode=9\fP"
543 Restore screen width and height, cursor position, and all the
544 character-attribute pairs.
545 (Kernels 1.1.67 through 1.1.91 only.
546 With kernel 1.1.92 or later, write to /dev/vcsa* instead.)
547 .IP "\fBTIOCLINUX, subcode=10\fP"
548 Handles the Power Saving
549 feature of the new generation of monitors.
550 VESA screen blanking mode is set to \fIargp\fP[1], which governs what
551 screen blanking does:
552
553 \fI0\fP: Screen blanking is disabled.
554
555 \fI1\fP: The current video adapter
556 register settings are saved, then the controller is programmed to turn off
557 the vertical synchronization pulses.
558 This puts the monitor into "standby" mode.
559 If your monitor has an Off_Mode timer, then
560 it will eventually power down by itself.
561
562 \fI2\fP: The current
563 settings are saved, then both the vertical and horizontal
564 synchronization pulses are turned off.
565 This puts the monitor into "off" mode.
566 If your monitor has no Off_Mode timer,
567 or if you want your monitor to power down immediately when the
568 blank_timer times out, then you choose this option.
569 (\fICaution:\fP Powering down frequently will damage the monitor.)
570
571 (Since 1.1.76.)
572 .SH RETURN VALUE
573 On success, 0 is returned.
574 On error \-1 is returned, and \fIerrno\fP is set.
575 .SH ERRORS
576 \fIerrno\fP may take on these values:
577 .TP
578 .B EBADF
579 The file descriptor is invalid.
580 .TP
581 .B ENOTTY
582 The file descriptor is not associated with a character special device,
583 or the specified request does not apply to it.
584 .TP
585 .B EINVAL
586 The file descriptor or \fIargp\fP is invalid.
587 .TP
588 .B EPERM
589 Insufficient permission.
590 .SH NOTES
591 .BR Warning :
592 Do not regard this man page as documentation of the Linux console ioctl's.
593 This is provided for the curious only, as an alternative to reading the
594 source.
595 Ioctl's are undocumented Linux internals, liable to be changed
596 without warning.
597 (And indeed, this page more or less describes the
598 situation as of kernel version 1.1.94;
599 there are many minor and not-so-minor
600 differences with earlier versions.)
601
602 Very often, ioctl's are introduced for communication between the
603 kernel and one particular well-known program (fdisk, hdparm, setserial,
604 tunelp, loadkeys, selection, setfont, etc.), and their behavior will be
605 changed when required by this particular program.
606
607 Programs using these ioctl's will not be portable to other versions
608 of UNIX, will not work on older versions of Linux, and will not work
609 on future versions of Linux.
610
611 Use POSIX functions.
612 .SH SEE ALSO
613 .BR dumpkeys (1),
614 .BR kbd_mode (1),
615 .BR loadkeys (1),
616 .BR mknod (1),
617 .BR setleds (1),
618 .BR setmetamode (1),
619 .BR execve (2),
620 .BR fcntl (2),
621 .BR ioperm (2),
622 .BR termios (3),
623 .BR console (4),
624 .BR console_codes (4),
625 .BR mt (4),
626 .BR sd (4),
627 .BR tty (4),
628 .BR tty_ioctl (4),
629 .BR ttyS (4),
630 .BR vcs (4),
631 .BR vcsa (4),
632 .BR charsets (7),
633 .BR mapscrn (8),
634 .BR resizecons (8),
635 .BR setfont (8)
636
637 .IR /usr/include/linux/kd.h ,
638 .I /usr/include/linux/vt.h