Provided by: manpages-es-dev_4.13-4_all 

NOMBRE
ioctl_console - ioctl's para la terminal de consola y consolas virtuales
DESCRIPCIÓN
The following Linux-specific ioctl(2) requests are supported for console terminals and virtual consoles.
Each requires a third argument, assumed here to be argp.
KDGETLED
Obtiene estado de los LEDs. argp apunta a un char. Los 3 bits más bajos de *argp se ponen según
el estado de los LEDs, como sigue:
LED_CAP 0x04 LED Bloq. Mayús
LED_NUM 0x02 LED Bloq. Num
LED_SCR 0x01 LED Bloq. Despl
KDSETLED
Set the LEDs. The LEDs are set to correspond to the lower three bits of the unsigned long integer
in 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.
Antes de Linux 1.1.54, los LEDs simplemente reflejaban el estado de las correspondientes señales del
teclado, y KDGETLED/KDSETLED tamibén cambiaban las señales del teclado. Desde Linux 1.1.54, los LEDs
pueden mostrar información arbitraria, pero por omisión muestran las señales del teclado. Las 2
siguientes llamadas a ioctl se usan para acceder a las señales del teclado.
KDGKBLED
Obtiene las señales del teclado Bloq.Mayús, BloqNum, BloqDespl (no las luces). argp apunta a un
char que se pone con el estado de la señal. Los 3 bits de más bajo orden (máscara 0x7) obtienen el
estado de la señal actual, y los bits de más bajo orden de la siguiente cuarteta (máscara 0x70)
obtienen el estado de la señal predeterminado. (Desde Linux 1.1.54.)
KDSKBLED
Set keyboard flags CapsLock, NumLock, ScrollLock (not lights). 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.)
KDGKBTYPE
Obtiene el tipo de teclado. Esto devuelve el valor KB_101, definido como 0x02.
KDADDIO
Añade puerto de E/S como válido. Equivale a ioperm(arg,1,1).
KDDELIO
Quita puerto de E/S como válido. Equivale a ioperm(arg,1,0).
KDENABIO
Habilita E/S a la tarjeta de vídeo. Equivale a ioperm(0x3b4, 0x3df-0x3b4+1, 1).
KDDISABIO
Inhabilita la E/S a la tarjeta de vídeo. Equivale a ioperm(0x3b4, 0x3df-0x3b4+1, 0).
KDSETMODE
Set text/graphics mode. argp is an unsigned integer containing one of:
KD_TEXT 0x00
KD_GRAPHICS 0x01
KDGETMODE
Get text/graphics mode. argp points to an int which is set to one of the values shown above for
KDSETMODE.
KDMKTONE
Generate tone of specified length. The lower 16 bits of the unsigned long integer in 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, 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.)
KIOCSOUND
Empieza o para la generación de sonido. Los 16 b más bajos de argp especifican el periodo en
ciclos de reloj (esto es, argp = 1193180÷frecuencia). argp = 0 apaga el sonido. En cualquier caso,
se devuelve el control inmediatamente.
GIO_CMAP
Obtiene el mapa de colores predeterminado actual del núcleo. argp apunta a un vector de 48 bytes.
(Desde Linux 1.3.3.)
PIO_CMAP
Cambia el mapa de colores predeterminado en modo texto. argpapunta a un vector de 48 B que
contiene, en orden, los valores de Rojo, Verde y Azul para los 16 colores de la pantalla
sisponibles: 0 es apagado, y 255 es intensidad completa. Los colores predeterminados son, en
orden, negro, rojo oscuro, verde oscuro, marrón, azul oscuro, púrpura oscuro, celeste oscuro, gris
claro, gris oscuro, rojo brillante, verde brillante, amarillo, azul brillante, púrpura brillante,
celeste brillante y blanco. (Desde Linux 1.3.3.)
GIO_FONT
Obtiene el tipo de letra de pantalla de 256 caracteres en forma expandida. argp apunta a un vector
de 8192 B. Falla con el código de error EINVAL si el tipo cargado actualmente es uno de 512
caracteres, o si la consola no está en modo texto.
GIO_FONTX
Obtiene el tipo de letra de la pantalla e información asociada. argp apunta a una struct
consolefontdesc (vea PIO_FONTX). En el momento de la llamada, el campo charcount debería estar
puesto con el máximo número de caracteres que cupieran en el búfer apuntado por chardata. Al
regresar, los campos charcount y charheight se llenan con los datos respectivos para el tipo
cargado actualmente, y el vector chardata contiene los datos del tipo si el valor inicial de
charcount indicaba que había espacio suficiente disponible; de otra forma, el búfer queda intacto
y en errno se pone el valor ENOMEM. (Desde Linux 1.3.1.)
PIO_FONT
Establece el tipo de letra de pantalla de 256 caracteres. Carga eltipo en el generador de
caracteres EGA/VGA. argp apunta a un mapa de 8192 bytes, con 32 bytes porcarácter. Sólo los
primeros N de ellos se emplean para un tipode 8×N (0 < N <= 32). Esta llamada también invalida
laasociación Unicode.
PIO_FONTX
Establece el tipo de pantalla e información asociada de atributos de vídeo. argp apunta a una
struct consolefontdesc {
unsigned short charcount; /* caracteres en el tipo
(256 ó 512) */
unsigned short charheight; /* líneas de rastreo por
carácter (1-32) */
char *chardata; /* datos de tipo en
forma expandida */
};
Si es necesario, la pantalla se redimensionará apropiadamente, y se enviará SIGWINCH a los
procesos apropiados. Esta llamada también invalida la asociación Unicode. (Desde Linux 1.3.1.)
PIO_FONTRESET
Restaura el tipo de letra de pantalla, el tamaño y la asociación Unicode a los valores
predeterminados en el arranque. No se usa argp, pero debe igualarse a NULL para asegurar la
compatibilidad con versiones futuras de Linux. (Desde Linux 1.3.28.)
GIO_SCRNMAP
Obtiene del núcleo la asociación de pantalla. argp apunta a un área de tamaño E_TABSZ, que se
carga en las posiciones del tipo usadas para mostrar cada carácter. Esta llamada más bien devuelve
información inútil si el tipo de letra cargado en la actualidad es de más de 256 caracteres.
GIO_UNISCRNMAP
Obtiene del núcleo la asociación de pantalla completa Unicode. argp apunta a un área de tamaño
E_TABSZ*sizeof(unsigned short), que se carga con los Unicodes que representan cada carácter. Se
usa un conjunto especial de Unicodes, empezando por U+F000, para representar asociaciones
"directas al tipo". (Desde Linux 1.3.1.)
PIO_SCRNMAP
Carga la (4ª) tabla "definible por el usuario" en el núcleo, que asocia bytes con símbolos de
pantalla de la consola. argp apunta a un área de tamaño E_TABSZ.
PIO_UNISCRNMAP
Carga en el núcleo la (4ª) tabla "definible por el usuario", que asocia bytes con Unicodes, que
luego se traducen a símbolos de la pantalla según el mapa cargado en la actualidad Unicode-a-tipo.
Los Unicodes especiales que empiezan en U+F000 se pueden usar para asociar directamente a los
símbolos del tipo. (Desde Linux 1.3.1.)
GIO_UNIMAP
Obtiene del núcleo la asocación Unicode-a-tipo. argp apunta a una
struct unimapdesc {
unsigned short entry_ct;
struct unipair *entries;
};
donde entries apunta a un vector de
struct unipair {
unsigned short unicode;
unsigned short fontpos;
};
(Desde Linux 1.1.92.)
PIO_UNIMAP
Poner la asociación Unicode-a-tipo en el núcleo. argp apunta a una struct unimapdesc. (Desde
Linux 1.1.92)
PIO_UNIMAPCLR
Limpia la tabla, posiblemente informa al algoritmo de hash. argp apunta a una
struct unimapinit {
unsigned short advised_hashsize; /* 0 si no opinión */
unsigned short advised_hashstep; /* 0 si no opinión */
unsigned short advised_hashlevel; /* 0 si no opinión */
};
(Desde Linux 1.1.92.)
KDGKBMODE
Obtiene el modo de teclado en curso. argp apunta a un long int que toma una de estos valores:
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 */
KDSKBMODE
Sets current keyboard mode. argp is a long equal to one of the values shown for KDGKBMODE.
KDGKBMETA
Obtiene el modo de manejo de la tecla META. argp apunta a un long int que se pone con uno de estos
valores:
K_METABIT 0x03 pone a 1 el bit de más alto orden
K_ESCPREFIX 0x04 prefijo de ESCAPE
KDSKBMETA
Sets meta key handling mode. argp is a long equal to one of the values shown above for KDGKBMETA.
KDGKBENT
Obtiene una entrada de la tabla de traducción de teclas (código de tecla a coigo de acción). argp
apunta a una
struct kbentry {
unsigned char kb_table;
unsigned char kb_index;
unsigned short kb_value;
};
con los primeros dos miembros llenos: kb_table selecciona la tabla de teclas (0 <= kb_table <
MAX_NR_KEYMAPS), y kb_index es el código de tecla (0 <= kb_index < NR_KEYS). kb_value se pone al
código de acción correspondiente, o K_HOLE si no hay tal tecla, o K_NOSUCHMAP si kb_table es
inválido.
KDSKBENT
Establece una entrada en la tabla de traducción. argp apunta a una struct kbentry.
KDGKBSENT
Obtiene una cadena de tecla de función. argp apunta a una
struct kbsentry {
unsigned char kb_func;
unsigned char kb_string[512];
};
kb_string es pone a la cadena (terminada en cero) correspondiente al código de acción de la tecla
de función kb_func-sima.
KDSKBSENT
Establece una entrada de cadena de tecla de función. argp apunta a una struct kbsentry.
KDGKBDIACR
Lee la tabla de acentos del núcleo. argp apunta a una
struct kbdiacrs {
unsigned int kb_cnt;
struct kbdiacr kbdiacr[256];
};
donde kb_cnt es el número de entradas en el vector, cada una siendo una
struct kbdiacr {
unsigned char diacr;
unsigned char base;
unsigned char result;
};
KDGETKEYCODE
Lee una entrada de la tabla de códigos de teclas del núcleo (código de rastreo a código de tecla).
argp apunta a una
struct kbkeycode {
unsigned int scancode;
unsigned int keycode;
};
keycode se pone a un valor correspondiente al scancode dado. (89 <= scancode <= 255 solamente.
Para 1 <= scancode <= 88, keycode==scancode.) (Desde Linux 1.1.63.)
KDSETKEYCODE
Escribe una entrada de tabla de códigos de teclas del núcleo. argp apunta a una struct kbkeycode.
(Desde Linux 1.1.63.)
KDSIGACCEPT
El proceso que hace la llamada indica su voluntad de aceptar la señal argp cuando se genere por la
pulsación de una combinación de teclas apropiada. (1 <= argp <= NSIG). (Vea spawn_console() en
linux/drivers/char/keyboard.c.)
VT_OPENQRY
Devuelve la primera consola disponible (no abierta). argp apunta a un int que se pone al número de
la vt (1 <= *argp <= MAX_NR_CONSOLES).
VT_GETMODE
Obtiene el modo de la vt activa. argp apunta a una
struct vt_mode {
char mode; /* modo de la vt */
char waitv; /* si puesto, se cuelga en escrituras si no activa */
short relsig; /* señal a lanzar en petición de liberación */
short acqsig; /* señal a lanzar en adquisición */
short frsig; /* sin uso (a 0) */
};
que se pone al modo de la vt activa. mode se pone a uno de estos valores:
VT_AUTO cambio de vt automático
VT_PROCESS cambio de controles de proceso
VT_ACKACQ cambio de confirmación
VT_SETMODE
Establece el modo de la vt activa. argp apunta a una struct vt_mode.
VT_GETSTATE
Obtiene información de estado global de vt. argp apunta a una
struct vt_stat {
unsigned short v_active; /* vt activa */
unsigned short v_signal; /* señal a enviar */
unsigned short v_state; /* máscara de bits de la vt */
};
Para cada vt en uso, el bit correspondiente en el miembro v_state se pone a 1. (Núcleos 1.0 a
1.1.92.)
VT_RELDISP
Libera una pantalla.
VT_ACTIVATE
Cambia a la vt argp (1 <= argp <= MAX_NR_CONSOLES).
VT_WAITACTIVE
Espera hasta que la vt argp ha sido activada.
VT_DISALLOCATE
Desaloja la memoria asociada con la vt argp. (Desde Linux 1.1.54.)
VT_RESIZE
Establece la idea que tiene el núcleo del tamaño de pantalla. argp apunta a una
struct vt_sizes {
unsigned short v_rows; /* Nº de filas */
unsigned short v_cols; /* Nº de columnas */
unsigned short v_scrollsize; /* ya no se usa */
};
Note que esto no cambia el modo de vídeo. Vea resizecons(8). (Desde Linux 1.1.54.)
VT_RESIZEX
Establece la idea que tiene el núcleo sobre varios parámetros de pantalla. argp apunta a una
struct vt_consize {
unsigned short v_rows; /* número de filas */
unsigned short v_cols; /* número de columnas */
unsigned short v_vlin; /* Nº de filas de píxeles
en la pantalla */
unsigned short v_clin; /* Nº de filas de píxeles
por carácter */
unsigned short v_vcol; /* Nº de cols. de píxeles
en la pantalla */
unsigned short v_ccol; /* Nº de cols. de píxeles
por carácter */
};
Cualquier parámetro puede ponerse a cero, indicando "no hay cambio", pero si se ponen varios
parámetros, deben ser auto-consistentes. Note que esto no cambia el modo de vídeo. Vea
resizecons(8). (Desde Linux 1.3.3.)
The action of the following ioctls depends on the first byte in the struct pointed to by argp, referred
to here as the subcode. These are legal only for the superuser or the owner of the current terminal.
TIOCLINUX, sub-código=0
Vuelca la pantalla. Desapareció en Linux 1.1.92. (Con el núcleo 1.1.92 o superior, lee de
/dev/vcsN o /dev/vcsaN en su lugar.)
TIOCLINUX, sub-código=1
Obtiene información de tarea. Desapareció en Linux 1.1.92.
TIOCLINUX, sub-código=2
Establece selección. argp apunta a una
struct {
char subcode;
short xs, ys, xe, ye;
short sel_mode;
};
xs e ysP son las columna y fila de comienzo. xe e ye son la columna y fila de final. (La esquina
superior izquierda es file=columna=1.) sel_mode es 0 para selección carácter a carácter, 1 para
selección palabra a palabra, ó 2 para selección línea a línea. Los caracteres de pantalla
indicados se resaltan y salvan en el vector estático sel_buffer en devices/char/console.c.
TIOCLINUX, sub-código=3
Selección de pegado. Los caracteres en el búfer de selección se escriben a fd.
TIOCLINUX, sub-código=4
Desblanquea la pantalla.
TIOCLINUX, sub-código=5
Establece los contenidos de una tabla de búsqueda de 256 b que define caracteres en una "palabra",
para la selección palabra a palabra. (Desde Linux 1.1.32.)
TIOCLINUX, sub-código=6
argp apunta a un char que se pone con el valor de la variable del núcleo shift_state. (Desde
Linux 1.1.32.)
TIOCLINUX, sub-código=7
argp apunta a un char que se pone al valor de la variable del núcleo report_mouse. (Desde Linux
1.1.33.)
TIOCLINUX, sub-código=8
Vuelca la anchura y altura de la pantalla, posición de cursor, y todos los pares
carácter-atributo. (Núcleos 1.1.67 a 1.1.91 solamente. Con el núcleo 1.1.92 ó posterior, lee de
/dev/vcsa* en su lugar.)
TIOCLINUX, sub-código=9
Restaura la anchura y altura de la pantalla, posición de cursor, y todos los pares
carácter-atributo. (Núcleos 1.1.67 a 1.1.91 solamente. Con el núcleo 1.1.92 ó posterior, escribe
en /dev/vcsa* en su lugar.)
TIOCLINUX, sub-código=10
Maneja la característica de Ahorro de Energía de la nueva generación de monitores. El modo de
blanqueo de pantalla VESA se pone a argp[1], que gobierna lo que hace el blanqueo de pantalla:
0: El blanqueo de pantalla es deshabilitado.
1: Se guardan los valores de los registros del adaptador de vídeo instalado, luego se programa el
controlador para apagar los pulsos de sincronización vertical. Esto pone el monitor en el
estado de "modo de espera". Si su monitor tiene un temporizador Off_Mode, entonces
eventualmente se apagará solo.
2: Se salvan los valores actuales, luego se apagan los pulsos de sincronización vertical y
horizontal. Esto pone el monitor en modo de "apagado". Si su monitor no tiene el temporizador
Off_Mode, o si Ud. quiere que su monitor se apague inmediatamente cuando el tiempo del
blank_timer pase, entonces debe escoger esta opción. (Precaución: Apagar frecuentemente dañará
el monitor.) (Desde Linux 1.1.76.)
VALOR DEVUELTO
En caso de éxito se devuelve 0. En caso de error se devuelve -1 y errno toma un valor.
ERRORES
errno puede tomar uno de estos valores:
EBADF El descriptor de fichero es inválido.
EINVAL El descriptor de fichero o argp es inválido.
ENOTTY El descriptor de fichero no está asociado con un dispositivo especial de caracteres, o la petición
especificada no se aplica a él.
EPERM Insufficient permission.
NOTAS
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.)
Muy a menudo, las ioctls se introducen para comunicación entre el núcleo y un programa particular bien
conocido (fdisk, hdparm, setserial, tunelp, loadkeys, selection, setfont, etc.), y su comportamiento
cambiará cuando se requiera por este programa particular.
Los programas que usen estas ioctls no serán transportables a otras versiones de UNIX, no funcionarán en
versiones más antiguas de Linux, y no funcionarán en versiones futuras de Linux.
Use funciones POSIX.
VÉASE TAMBIÉN
dumpkeys(1), kbd_mode(1), loadkeys(1), mknod(1), setleds(1), setmetamode(1), execve(2), fcntl(2),
ioctl_tty(2), ioperm(2), termios(3), console_codes(4), mt(4), sd(4), tty(4), ttyS(4), vcs(4), vcsa(4),
charsets(7), mapscrn(8), resizecons(8), setfont(8)
/usr/include/linux/kd.h, /usr/include/linux/vt.h
COLOFÓN
Esta página es parte de la versión 5.10 del proyecto Linux man-pages. Puede encontrar una descripción del
proyecto, información sobre cómo informar errores y la última versión de esta página en
https://www.kernel.org/doc/man-pages/.
TRADUCCIÓN
La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García
<gerardo.aburruzaga@uca.es> y Juan Piernas <piernas@ditec.um.es>
Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con
respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a
debian-l10n-spanish@lists.debian.org.
Linux 15 Septiembre 2017 IOCTL_CONSOLE(2)