Provided by: manpages-fr_3.65d1p1-1_all bug

NOM

       console_ioctl - Ioctl pour les consoles et terminaux virtuels

DESCRIPTION

       Les requêtes ioctl(2) spécifiques à Linux suivants sont disponibles. Chacune d'entre elles
       nécessite un troisième paramètre, ici noté argp.

       KDGETLED
              Récupère l'état des LED. argp pointe vers un char. L'état des  LED  est  enregistré
              dans les trois bits de poids le plus faible de *argp, comme indiqué ci-dessous :

              LED_CAP   0x04   led du verrouillage des majuscules
              LEC_NUM   0x02   led du verrouillage du pavé numérique
              LED_SCR   0x01   led du verrouillage du défilement

       KDSETLED
              Configure l'état des LED. Les LED sont configurées suivant la valeur des trois bits
              de poids faible de *argp. Cependant, si un bit de poids plus fort est défini  à  1,
              les  LED  reviennent  dans  leur  état  normal,  affichant  l'état des fonctions du
              clavier :  verrouillage  des  majuscules,  verrouillage  du   pavé   numérique   et
              verrouillage du défilement.

       Avant  la  version 1.1.54  du  noyau,  les LED reflétaient seulement l'état fonctionnel du
       clavier, modifiable par KDGETLED/KDSETLED. Depuis la version 1.1.54, les LED peuvent  être
       utilisées  pour  afficher  des  informations arbitraires, mais affichent par défaut l'état
       fonctionnel du clavier. Les deux ioctl ci-dessous permettent d'accéder à cet état :

       KDGKBLED
              Récupère l'état  du  clavier  (et  non  des  LED) :  verrouillage  des  majuscules,
              verrouillage  du  pavé numérique et verrouillage du défilement. argp pointe vers un
              char stockant l'état. Les trois bits de poids faible (masque 0x7) indiquent  l'état
              actuel,  alors  que  les  trois  bits de poids faible de l'autre demi-octet (masque
              0x70) indiquent l'état par défaut.

       KDSKBLED
              Définit  l'état  du  clavier  (et  non  des  LED) :  verrouillage  des  majuscules,
              verrouillage  du  pavé  numérique  et  verrouillage du défilement. argp indique les
              états voulus. Les trois bits de poids faible (masque 0x7) indiquent  les  états  et
              les  trois  bits  de  poids  faible  de  l'autre  demi-octet  suivant (masque 0x70)
              indiquent les états par défaut. (Depuis 1.1.54.)

       KDGKBTYPE
              Récupère le type de clavier. Retourne la valeur KB_101, définie comme 0x02.

       KDADDIO
              Ajoute un port aux ports d'entrée/sortie valables. Équivalent à ioperm(arg,1,1).

       KDDELIO
              Supprime un port des ports d'entrée/sortie valables. Équivalent à ioperm(arg,1,0).

       KDENABIO
              Active  les  entrées/sorties  vers  la  carte  vidéo.  Équivalent  à  ioperm(0x3b4,
              0x3df-0x3b4+1, 1).

       KDDISABIO
              Désactive  les  entrées/sorties  vers  la  carte  vidéo. Équivalent à ioperm(0x3b4,
              0x3df-0x3b4+1, 0)..

       KDSETMODE
              Définit le mode texte/graphique. argp peut valoir :

              KD_TEXT       0x00
              KD_GRAPHICS   0x01

       KDGETMODE
              Récupère le mode texte/graphique. argp pointe  vers  un  long  qui  prend  une  des
              valeurs précédentes.

       KDMKTONE
              Génère  une  note d'une durée donnée. Les 16 bits de poids faible de argp indiquent
              la période en nombre de cycles, et les 16 bits de poids fort indiquent la durée  en
              millisecondes.  Une durée nulle correspond à un son coupé. La ligne de commande est
              immédiatement rendue. Par exemple, argp = (125<<16)  +  0x637  indiquerait  le  bip
              normalement associé à Ctrl-G.

       KIOCSOUND
              Démarre  et  arrête  la  génération  du  son.  Les  16 bits de poids faible de argp
              indiquent la période en nombre de cycles (c'est-à-dire argp  =  1193180/fréquence).
              argp = 0 coupe le son. Dans les deux, le contrôle de la ligne de commande est rendu
              immédiatement.

       GIO_CMAP
              Récupère du noyau la table de correspondance actuelle des couleurs par défaut. argp
              pointe vers un tableau de 48 octets. (Depuis 1.3.3.)

       PIO_CMAP
              Modifie  le plan par défaut des couleurs du mode texte. argp pointe vers un tableau
              de 48 octets contenant dans l'ordre les valeurs des  16  couleurs  disponibles,  en
              Rouge,  Vert  et  Bleu : 0 pour aucune, 255 pour l'intensité maximale. Les couleurs
              par défaut sont dans l'ordre : le noir, le rouge foncé, le vert foncé,  le  marron,
              le  bleu  foncé,  le  violet foncé, le cyan foncé, le gris clair, le gris foncé, le
              rouge, le vert, le jaune, le bleu, le violet, le cyan et le blanc. (Depuis 1.3.3.)

       GIO_FONT
              Récupère la fonte de l'écran de 256 caractères sous sa forme étendue.  argp  pointe
              vers  un  tableau  de  8192 octets. Le code d'erreur EINVAL est renvoyé si la fonte
              alors chargée est définie sur 512 caractères ou si la console  n'est  pas  en  mode
              texte.

       GIO_FONTX
              Récupère  la  fonte  de l'écran et ses informations relatives. argp pointe vers une
              struct consolefontdesc (consultez PIO_FONTX). Lors de l'appel, le  champ  charcount
              devrait être configuré au nombre maximal de caractères correspondant à la taille du
              tampon vers lequel pointe chardata. Lors du retour, charcount  et  charheight  sont
              remplis  des  données  respectives  de  la  fonte  actuellement chargée, le tableau
              chardata contenant les données de la fonte  si  la  valeur  initiale  de  charcount
              indique  un espace disque suffisant, sinon le tampon reste intact et errno contient
              ENOMEM. (Depuis 1.3.3.)

       PIO_FONT
              Définit la fonte (de  256 caractères)  de  l'écran  et  charge  la  fonte  dans  le
              générateur  de caractères EGA/VGA. argp pointe vers un tableau de correspondance de
              8192 octets, comprenant 32 octets par caractère. Seuls les N premiers  d'entre  eux
              sont  utilisés  pour  une  fonte 8xN (0 < N <= 32). Cet appel invalide également la
              correspondance Unicode.

       PIO_FONTX
              Définit la fonte de l'écran et les informations pour le rendu. argp pointe vers une

                  struct consolefontdesc {
                      unsigned short charcount;  /* nombre de caractères
                                                    (256 ou 512) */
                      unsigned short charheight; /* lignes par caractère
                                                    (1-32) */
                      char          *chardata;   /* données de la fonte
                                                    forme étendue */
                  };

              Si nécessaire, la taille de l'écran sera modifiée et un signal SIGWINCH sera envoyé
              aux  processus  appropriés. Cet appel invalide également la correspondance Unicode.
              (Depuis 1.3.1.)

       PIO_FONTRESET
              Rétablit la fonte, la taille et la correspondance Unicode de  l'écran  aux  valeurs
              par  défaut  de  démarrage  (boot). argp n'est pas utilisé, mais ne doit pas valoir
              NULL pour la compatibilité avec les futures versions de Linux. (Depuis 1.3.28.)

       GIO_SCRNMAP
              Récupère la correspondance de l'écran du noyau.  argp  pointe  vers  un  espace  de
              taille  E_TABSZ,  qui  recevra  les  positions  de la fonte utilisées pour afficher
              chaque caractère. Les informations renvoyées par cet appel ne seront  sûrement  pas
              intéressantes si la fonte chargée a plus de 256 caractères.

       GIO_UNISCRNMAP
              Récupère la correspondance Unicode complète du noyau. argp pointe vers un espace de
              taille E_TABSZ*sizeof(unsigned short), qui recevra  la  représentation  Unicode  de
              chaque  caractère.  Un jeu spécial d'Unicodes, démarrant à U+F000, est utilisé pour
              représentation les correspondances directes  avec  les  fontes  (« direct  to  font
              mappings »). (Depuis 1.3.1.)

       PIO_SCRNMAP
              Charge  dans  le  noyau la table « définissable par l'utilisateur » (la quatrième),
              qui fait la correspondance entre octet et symboles à l'écran de  la  console.  argp
              pointe vers un espace de taille E_TABSZ.

       PIO_UNISCRNMAP
              Charge  dans  le  noyau la table « définissable par l'utilisateur » (la quatrième),
              qui fait la correspondance entre octet et Unicodes, qui  sont  alors  convertis  en
              symboles à l'écran d'après la table de correspondance déjà chargée entre Unicode et
              fonte. Les Unicodes spéciaux, démarrant à U+F000, peuvent être  utilisés  pour  une
              correspondance directe avec les symboles de la fonte. (Depuis 1.3.1.)

       GIO_UNIMAP
              Récupère  la  correspondance Unicode/Fonte du noyau. argp pointe vers une structure
              de type :

                  struct unimapdesc {
                      unsigned short  entry_ct;
                      struct unipair *entries;
                  };

              où entries pointe vers une structure de type :

                  struct unipair {
                      unsigned short unicode;
                      unsigned short fontpos;
                  };

              (Depuis 1.1.92.)

       PIO_UNIMAP
              Définit  l'association  Unicode/Police  du  noyau.  argp  pointe  vers  une  struct
              unimapdesc. (Depuis 1.1.92)

       PIO_UNIMAPCLR
              Vide  la  table,  éventuellement  en informant l'algorithme de hachage. argp pointe
              vers une structure de type :

                  struct unimapinit {
                      unsigned short advised_hashsize;  /* 0 si sans opinion */
                      unsigned short advised_hashstep;  /* 0 si sans opinion */
                      unsigned short advised_hashlevel; /* 0 si sans opinion */
                  };

              (Depuis 1.1.92.)

       KDGKBMODE
              Récupère le mode courant du clavier. argp pointe vers un long qui prend une de  ces
              valeurs :

              K_RAW         0x00
              K_XLATE       0x01
              K_MEDIUMRAW   0x02
              K_UNICODE     0x03

       KDSKBMODE
              Définit  le  mode  actuel  du  clavier.  argp  est  un  long égal à une des valeurs
              précédentes.

       KDGKBMETA
              Récupère le mode de gestion des méta-touches. argp pointe vers un  long  qui  prend
              une des valeurs suivantes :

              K_METABIT     0x03   positionne le bit de poids fort
              K_ESCPREFIX   0x04   préfixe pour les échappements

       KDSKBMETA
              Définit  le  mode  de  gestion  des  méta-touches.  argp est un long égal à une des
              valeurs précédentes.

       KDGKBENT
              Récupère une entrée dans la table de traduction des touches (code  de  touche  vers
              code d'action). argp pointe vers une structure de type :

                  struct kbentry {
                      unsigned char  kb_table;
                      unsigned char  kb_index;
                      unsigned short kb_value;
                  };

              dont  les  deux premiers membres sont renseignés : kb_table sélectionne la table de
              touches (0<= kb_table < MAX_NR_KEYMAPS), et kb_index est le code de  touche  (0  <=
              kb_index < NR_KEYS). kb_value est positionné avec le code d'action correspondant ou
              K_HOLE si la touche n'existe pas  ou  encore  K_NOSUCHMAP  si  kb_table  n'est  pas
              valable.

       KDSKBENT
              Définit une entrée de la table de traduction. argp pointe vers une struct kbentry.

       KDGKBSENT
              Récupère la chaîne d'une touche fonction. argp pointe vers une structure de type :

                  struct kbsentry {
                      unsigned char kb_func;
                      unsigned char kb_string[512];
                  };

              kb_string  fournit  la chaîne (terminée par un caractère nul) correspondant au code
              d'action de la kb_funcième touche fonction.

       KDSKBSENT
              Définit la chaîne d'une touche fonction. argp pointe vers une struct kbsentry.

       KDGKBDIACR
              Lit la table des accents du noyau. argp pointe vers une structure de type :

                  struct kbdiacrs {
                      unsigned int   kb_cnt;
                      struct kbdiacr kbdiacr[256];
                  };

              où kb_cnt est le  nombre  d'entrées  dans  le  tableau,  chaque  entrée  étant  une
              structure de type :

                  struct kbdiacr {
                      unsigned char diacr;
                      unsigned char base;
                      unsigned char result;
                  };

       KDGETKEYCODE
              Lit  une  entrée  de  la  table  des codes touche du noyau (« scan code » vers code
              touche). argp pointe vers une structure de type :

                  struct kbkeycode {
                      unsigned int scancode;
                      unsigned int keycode;
                  };

              keycode fournit le code touche correspondant à scancode. (89  <=  scancode  <=  255
              seulement. Pour 1 <= scancode <= 88, keycode==scancode.) (Depuis 1.1.63.)

       KDSETKEYCODE
              Écrit une entrée de la table des codes touche du noyau. argp pointe vers une struct
              kbkeycode. (Depuis 1.1.63.)

       KDSIGACCEPT
              Le processus signale sa volonté d'accepter le signal argp quand il  est  généré  en
              pressant  une  certaine  combinaison  de  touches.  (1 <= argp <= NSIG). (Consultez
              spawn_console() dans linux/drivers/char/keyboard.c)

       VT_OPENQRY
              Renvoie la première console disponible (non  ouverte).  argp  pointe  vers  un  int
              auquel est affecté le numéro du terminal virtuel (1 <= *argp <= MAX_NR_CONSOLES).

       VT_GETMODE
              Récupère le mode du terminal virtuel (« vt ») actif. argp pointe vers une structure
              de type :

                  struct vt_mode {
                      char  mode;    /* mode du terminal virtuel */
                      char  waitv;   /* si positionné, met les écritures en attente
                                        et permet les écritures, sinon */
                      short relsig;  /* signal à lever en cas de libération */
                      short acqsig;  /* signal à lever en cas d'acquisition */
                      short frsig;   /* pas utilisé (mis à 0) */
                  };

              qui indique le mode du terminal virtuel actif. mode prend une des valeurs :

              VT_AUTO      changement de vt automatique
              VT_PROCESS   changement de vt contrôlé par un processus
              VT_ACKACQ    changement de vt après confirmation

       VT_SETMODE
              Définit l'état du terminal virtuel actif. argp pointe vers une struct vt_mode.

       VT_GETSTATE
              Récupère l'information globale sur l'état du terminal virtuel. argp pointe vers une
              structure de type :

                  struct vt_stat {
                      unsigned short v_active;  /* terminal virtuel actif */
                      unsigned short v_signal;  /* signal à envoyer */
                      unsigned short v_state;   /* masque de bits de terminaux virtuels */
                  };

              Pour  chaque  terminal  virtuel  utilisé,  le  bit  correspondant  de  v_state  est
              positionné. (noyaux 1.0 à 1.1.92.)

       VT_RELDISP
              Libère un affichage.

       VT_ACTIVATE
              Passe au terminal virtuel argp (1 <= argp <= MAX_NR_CONSOLES).

       VT_WAITACTIVE
              Attend jusqu'à ce que le terminal virtuel argp soit activé.

       VT_DISALLOCATE
              Libère la mémoire associée au terminal virtuel argp. (Depuis 1.1.54.)

       VT_RESIZE
              Informe le noyau sur la taille de l'écran. argp pointe vers une structure de type :

                  struct vt_sizes {
                      unsigned short v_rows;       /* # lignes */
                      unsigned short v_cols;       /* # colonnes */
                      unsigned short v_scrollsize; /* n'est plus utilisé */
                  };

              Notez que ça ne change pas le mode vidéo. Consultez resizecons(8). (Depuis 1.1.54.)

       VT_RESIZEX
              Informe le noyau de divers paramètres de l'écran. argp pointe vers une structure de
              type :

                  struct vt_consize {
                      unsigned short v_rows;  /* nombre de lignes */
                      unsigned short v_cols;  /* nombre de colonnes */
                      unsigned short v_vlin;  /* lignes de pixels
                                                 sur l'écran */
                      unsigned short v_clin;  /* lignes de pixels
                                                 par caractère */
                      unsigned short v_vcol;  /* colonnes de pixels
                                                 sur l'écran */
                      unsigned short v_ccol;  /* colonnes de pixels
                                                 par caractère */
                  };

              Tout  paramètre  peut  être  mis  à  zéro  pour  indiquer qu'aucun changement n'est
              souhaité. Si plusieurs paramètres sont positionnés,  ils  doivent  être  cohérents.
              Notez que ça ne change pas le mode vidéo. Consultez resizecons(8). (Depuis 1.3.3.)

       Les  actions  des  ioctls  suivants dépendent du premier octet de la structure pointée par
       argp, qui sera appelé subcode  par  la  suite.  Elles  ne  sont  autorisées  que  pour  le
       superutilisateur ou pour le propriétaire du terminal courant.

       TIOCLINUX, subcode=0
              Fait  un cliché de l'écran. A disparu dans le noyau 1.1.92. (Avec les noyaux 1.1.92
              et suivants, lisez /dev/vcsN ou /dev/vcsaN à la place.)

       TIOCLINUX, subcode=1
              Récupère les informations sur la tâche. A disparu dans 1.1.92.

       TIOCLINUX, subcode=2
              Définit la sélection. argp pointe vers une structure de type :

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

              xs et ys sont la colonne et la ligne de début. xe et ye la colonne et la  ligne  de
              fin. (Le coin en haut à gauche a pour coordonnées ligne=colonne=1.) sel_mode vaut 0
              pour les sélections caractère par caractère, 1 pour les sélections mot à mot  ou  2
              pour  les  sélections  ligne  à  ligne.  Les  caractères  de  l'écran indiqués sont
              surlignés et sauvés dans le tableau statique sel_buffer de devices/char/console.c.

       TIOCLINUX, subcode=3
              Colle la sélection. Les caractères dans le tampon de la sélection sont écrits  dans
              fd.

       TIOCLINUX, subcode=4
              Arrête l'économiseur d'écran.

       TIOCLINUX, subcode=5
              Définit  le  contenu  de  la  table de correspondance (de 256 bits) définissant les
              caractères d'un « mot » pour une sélection mot à mot. (Depuis 1.1.32.)

       TIOCLINUX, subcode=6
              argp pointe vers un caractère qui prend la valeur de  la  variable  shift_state  du
              noyau. (Depuis 1.1.32.)

       TIOCLINUX, subcode=7
              argp  pointe  vers  un caractère qui prend la valeur de la variable report_mouse du
              noyau. (Depuis 1.1.33.)

       TIOCLINUX, subcode=8
              Fait un cliché de largeur et de la hauteur de l'écran, de la position du curseur et
              de  toutes  les paires caractère-attribut. (Noyaux 1.1.67 à 1.1.91 uniquement. Avec
              les noyaux 1.1.92 et suivants, lisez /dev/vcsa* à la place.)

       TIOCLINUX, subcode=9
              Restaure la largeur et la hauteur de l'écran, la position du curseur et toutes  les
              paires  caractère-attribut.  (Noyaux  1.1.67  à  1.1.91 uniquement. Avec les noyaux
              1.1.92 et suivants, écrivez dans /dev/vcsa* à la place.)

       TIOCLINUX, subcode=10
              Gère les  fonctionnalités  de  gestion  d'énergie  de  la  nouvelle  génération  de
              moniteurs.  Le mode de veille d'écran VESA est définit à argp[1], qui défini ce que
              la veille produit :

              0 :
                 La veille de l'écran est désactivée.

              1 :
                 Les paramètres du registre de  l'adaptateur  vidéo  sont  enregistrés,  puis  le
                 contrôleur   est   programmé  pour  couper  les  pulsations  de  synchronisation
                 verticales. Ceci place le moniteur en mode « standby ». Si votre moniteur  a  un
                 minuteur, il finira par s'éteindre de lui-même.

              2 :
                 Les paramètres courants sont enregistrés, puis les pulsations de synchronisation
                 verticales et horizontales sont coupées.  Ceci  place  votre  moniteur  en  mode
                 « off ».  Si  votre  moniteur n'a pas de minuteur ou si vous souhaitez que votre
                 moniteur s'éteigne immédiatement quand le minuteur de veille arrive à bout, vous
                 devriez  choisir  cette option. (Prudence : Des extinctions fréquentes abîmeront
                 votre moniteur.) (Depuis 1.1.76)

VALEUR RENVOYÉE

       En cas de succès, 0  est  renvoyé.  En  cas  d'erreur,  -1  est  renvoyé,  est  errno  est
       positionné.

ERREURS

       errno peut prendre une de ces valeurs :

       EBADF  Le descripteur de fichier est invalide.

       ENOTTY Le  descripteur  de  fichier n'est pas associé avec un périphérique spécial de type
              caractère ou la requête spécifiée ne peut pas lui être appliquée.

       EINVAL Le descripteur de fichier ou argp est n'est pas valable.

       EPERM  Droits insuffisants.

NOTES

       Attention : ne considérez pas cette page de manuel comme une documentation des ioctls  des
       consoles  Linux. Elle n'existe que pour satisfaire votre curiosité, et pour vous éviter de
       lire les sources. Les ioctls sont documentés à l'intérieur de Linux et peuvent  changer  à
       tout  moment  sans  notification. (En réalité, cette page décrit la situation au moment du
       noyau 1.1.94 ; il existe des  différences  mineures,  voire  plus  importantes,  avec  les
       versions plus récentes.)

       Très souvent, les ioctls sont ajoutés pour la communication entre le noyau et un programme
       particulier assez connu (fdisk, hdparm, setserial, tunelp, loadkeys,  selection,  setfont,
       etc.), et leurs comportements changeront quand ce programme particulier le nécessite.

       Les  programmes  qui  utilisent  ces ioctls ne seront pas portables vers d'autres versions
       d'UNIX, et ne fonctionneront pas avec  des  versions  de  Linux  plus  anciennes  ou  plus
       récentes.

       Utilisez les fonctions POSIX.

VOIR AUSSI

       dumpkeys(1),  kbd_mode(1),  loadkeys(1),  mknod(1), setleds(1), setmetamode(1), execve(2),
       fcntl(2), ioperm(2),  termios(3),  console(4),  console_codes(4),  mt(4),  sd(4),  tty(4),
       tty_ioctl(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

COLOPHON

       Cette  page  fait partie de la publication 3.65 du projet man-pages Linux. Une description
       du projet et des  instructions  pour  signaler  des  anomalies  peuvent  être  trouvées  à
       l'adresse http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/>  (2003-2006).  Simon  Paillard  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       Veuillez     signaler     toute     erreur     de     traduction     en     écrivant     à
       <debian-l10n-french@lists.debian.org>  ou  par  un  rapport  de  bogue   sur   le   paquet
       manpages-fr.

       Vous  pouvez  toujours  avoir  accès  à la version anglaise de ce document en utilisant la
       commande « man -L C <section> <page_de_man> ».