Provided by: manpages-es-dev_4.16.0-5_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
              Change the default text-mode color map.  argp  points  to  a  48-byte  array  which
              contains,  in  order,  the  Red, Green, and Blue values for the 16 available screen
              colors: 0 is off, and 255 is full intensity.  The default  colors  are,  in  order:
              black,  dark red, dark green, brown, dark blue, dark purple, dark cyan, light grey,
              dark grey, bright red, bright green, yellow, bright  blue,  bright  purple,  bright
              cyan, and white.  (Since 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
              Resets  the screen font, size, and Unicode mapping to the bootup defaults.  argp is
              unused, but should be set to NULL to ensure compatibility with future  versions  of
              Linux.  (Since 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.  Symbolic subcodes are available in  <linux/tiocl.h>  since
       Linux 2.5.71.

       TIOCLINUX, subcode=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, subcode=1
              Obtiene información de tarea. Desapareció en Linux 1.1.92.

       TIOCLINUX, subcode=TIOCL_SETSEL
              Establece selección. argp apunta a una

                  struct {
                      char  subcode;
                      short xs, ys, xe, ye;
                      short sel_mode;
                  };

              xs and ys are the starting column and row.  xe and ye are  the  ending  column  and
              row.     (Upper    left    corner    is   row=column=1.)    sel_mode   is   0   for
              character-by-character  selection,  1  for  word-by-word  selection,   or   2   for
              line-by-line  selection.  The indicated screen characters are highlighted and saved
              in a kernel buffer.

       TIOCLINUX, subcode=TIOCL_PASTESEL
              Selección de pegado. Los caracteres en el búfer de selección se escriben a fd.

       TIOCLINUX, subcode=TIOCL_UNBLANKSCREEN
              Quita el blanco de la pantalla.

       TIOCLINUX, subcode=TIOCL_SELLOADLUT
              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, subcode=TIOCL_GETSHIFTSTATE
              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, subcode=TIOCL_GETMOUSEREPORTING
              argp apunta a un char que se pone al valor de la variable del núcleo  report_mouse.
              (Desde Linux 1.1.33.)

       TIOCLINUX, subcode=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, subcode=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, subcode=TIOCL_SETVESABLANK
              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.)

       TIOCLINUX, subcode=TIOCL_SETKMSGREDIRECT
              Change  target of kernel messages ("console"): by default, and if this is set to 0,
              messages are written to the currently active VT.  The VT to write to  is  a  single
              byte following subcode.  (Since Linux 2.5.36.)

       TIOCLINUX, subcode=TIOCL_GETFGCONSOLE
              Returns the number of VT currently in foreground.  (Since Linux 2.5.36.)

       TIOCLINUX, subcode=TIOCL_SCROLLCONSOLE
              Scroll  the foreground VT by the specified amount of lines down, or half the screen
              if 0.  lines is *(((int32_t *)&subcode) + 1).  (Since Linux 2.5.67.)

       TIOCLINUX, subcode=TIOCL_BLANKSCREEN
              Blank  the  foreground  VT,  ignoring  "pokes"  (typing):  can  only  be  unblanked
              explicitly (by switching VTs, to text mode, etc.).  (Since Linux 2.5.71.)

       TIOCLINUX, subcode=TIOCL_BLANKEDSCREEN
              Returns the number of VT currently blanked, 0 if none.  (Since Linux 2.5.71.)

       TIOCLINUX, subcode=16
              Never used.

       TIOCLINUX, subcode=TIOCL_GETKMSGREDIRECT
              Returns target of kernel messages.  (Since Linux 2.6.17.)

VALOR DEVUELTO

       On success, 0 is returned (except where indicated).  On failure, -1 is returned, and errno
       is set to indicate the error.

ERRORES

       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

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⟩.