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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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 ⟨⟩.