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

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)