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

Linux                                            28 février 2009                                CONSOLE_IOCTL(4)