Loading

NOM

       ioctl de console - ioctl pour les consoles et terminaux virtuels.

       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 fixé à 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
       version1.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
              Fixe 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
              Fixe 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 (voir 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
              Fixe 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 N d’entre eux sont utilisés pour une fonte
              8xN  (0  <  N  <=  32).  Cet   appel   invalide   également   la
              correspondance Unicode.

       PIO_FONTX
              Fixe la fonte de l’écran et les informations pour le rendu. argp
              pointe vers une structure de type :

                  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
              Fixe 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
              Fixe le mode courant 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
              Fixe 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
              Fixe 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
              Fixe 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
              Fixe  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 tty 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
              Fixe 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
              Fixe  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 fixé
              à 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.23 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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par          Simon          Paillard
       <simon.paillard@resel.enst-bretagne.fr>   et  l’équipe  francophone  de
       traduction de Debian.

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