Provided by:
manpages-fr_3.32d0.2p4-1_all 
NOM
console_ioctl - Ioctl pour les consoles et terminaux virtuels
DESCRIPTION
Les requetes ioctl(2) specifiques a Linux suivants sont disponibles.
Chacune d'entre elles necessite un troisieme parametre, ici note argp.
KDGETLED
Recupere l'etat des LED. argp pointe vers un char. L'etat des
LED est enregistre dans les trois bits de poids le plus faible
de *argp, comme indique ci-dessous :
LED_CAP 0x04 led du verrouillage des majuscules
LEC_NUM 0x02 led du verrouillage du pave numerique
LED_SCR 0x01 led du verrouillage du defilement
KDSETLED
Configure l'etat des LED. Les LED sont configurees suivant la
valeur des trois bits de poids faible de *argp. Cependant, si un
bit de poids plus fort est fixe a 1, les LED reviennent dans
leur etat normal, affichant l'etat des fonctions du clavier :
verrouillage des majuscules, verrouillage du pave numerique et
verrouillage du defilement.
Avant la version 1.1.54 du noyau, les LED refletaient seulement l'etat
fonctionnel du clavier, modifiable par KDGETLED/KDSETLED. Depuis la
version 1.1.54, les LED peuvent etre utilisees pour afficher des
informations arbitraires, mais affichent par defaut l'etat fonctionnel
du clavier. Les deux ioctl ci-dessous permettent d'acceder a cet etat :
KDGKBLED
Recupere l'etat du clavier (et non des LED) : verrouillage des
majuscules, verrouillage du pave numerique et verrouillage du
defilement. argp pointe vers un char stockant l'etat. Les trois
bits de poids faible (masque 0x7) indiquent l'etat actuel, alors
que les trois bits de poids faible de l'autre demi-octet (masque
0x70) indiquent l'etat par defaut.
KDSKBLED
Fixe l'etat du clavier (et non des LED) : verrouillage des
majuscules, verrouillage du pave numerique et verrouillage du
defilement. argp indique les etats voulus. Les trois bits de
poids faible (masque 0x7) indiquent les etats et les trois bits
de poids faible de l'autre demi-octet suivant (masque 0x70)
indiquent les etats par defaut. (Depuis 1.1.54.)
KDGKBTYPE
Recupere le type de clavier. Retourne la valeur KB_101, definie
comme 0x02.
KDADDIO
Ajoute un port aux ports d'entree/sortie valables. Equivalent a
ioperm(arg,1,1).
KDDELIO
Supprime un port des ports d'entree/sortie valables. Equivalent
a ioperm(arg,1,0).
KDENABIO
Active les entrees/sorties vers la carte video. Equivalent a
ioperm(0x3b4, 0x3df-0x3b4+1, 1).
KDDISABIO
Desactive les entrees/sorties vers la carte video. Equivalent a
ioperm(0x3b4, 0x3df-0x3b4+1, 0)..
KDSETMODE
Fixe le mode texte/graphique. argp peut valoir :
KD_TEXT 0x00
KD_GRAPHICS 0x01
KDGETMODE
Recupere le mode texte/graphique. argp pointe vers un long qui
prend une des valeurs precedentes.
KDMKTONE
Genere une note d'une duree donnee. Les 16 bits de poids faible
de argp indiquent la periode en nombre de cycles, et les 16 bits
de poids fort indiquent la duree en millisecondes. Une duree
nulle correspond a un son coupe. La ligne de commande est
immediatement rendue. Par exemple, argp = (125<<16) + 0x637
indiquerait le bip normalement associe a Ctrl-G.
KIOCSOUND
Demarre et arrete la generation du son. Les 16 bits de poids
faible de argp indiquent la periode en nombre de cycles
(c'est-a-dire argp = 1193180/frequence). argp = 0 coupe le son.
Dans les deux, le controle de la ligne de commande est rendu
immediatement.
GIO_CMAP
Recupere du noyau la table de correspondance actuelle des
couleurs par defaut. argp pointe vers un tableau de 48 octets.
(Depuis 1.3.3.)
PIO_CMAP
Modifie le plan par defaut 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'intensite maximale. Les couleurs par
defaut sont dans l'ordre : le noir, le rouge fonce, le vert
fonce, le marron, le bleu fonce, le violet fonce, le cyan fonce,
le gris clair, le gris fonce, le rouge, le vert, le jaune, le
bleu, le violet, le cyan et le blanc. (Depuis 1.3.3.)
GIO_FONT
Recupere la fonte de l'ecran de 256 caracteres sous sa forme
etendue. argp pointe vers un tableau de 8192 octets. Le code
d'erreur EINVAL est renvoye si la fonte alors chargee est
definie sur 512 caracteres ou si la console n'est pas en mode
texte.
GIO_FONTX
Recupere la fonte de l'ecran et ses informations relatives. argp
pointe vers une struct consolefontdesc (consultez PIO_FONTX).
Lors de l'appel, le champ charcount devrait etre configure au
nombre maximal de caracteres correspondant a la taille du tampon
vers lequel pointe chardata. Lors du retour, charcount et
charheight sont remplis des donnees respectives de la fonte
actuellement chargee, le tableau chardata contenant les donnees
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 caracteres) de l'ecran et charge la fonte
dans le generateur de caracteres EGA/VGA. argp pointe vers un
tableau de correspondance de 8192 octets, comprenant 32 octets
par caractere. Seuls N d'entre eux sont utilises pour une fonte
8xN (0 < N <= 32). Cet appel invalide egalement la
correspondance Unicode.
PIO_FONTX
Fixe la fonte de l'ecran et les informations pour le rendu. argp
pointe vers une structure de type :
struct consolefontdesc {
unsigned short charcount; /* nombre de caracteres
(256 ou 512) */
unsigned short charheight; /* lignes par caractere
(1-32) */
char *chardata; /* donnees de la fonte
forme etendue */
};
Si necessaire, la taille de l'ecran sera modifiee et un signal
SIGWINCH sera envoye aux processus appropries. Cet appel
invalide egalement la correspondance Unicode. (Depuis 1.3.1.)
PIO_FONTRESET
Retablit la fonte, la taille et la correspondance Unicode de
l'ecran aux valeurs par defaut de demarrage (boot). argp n'est
pas utilise, mais ne doit pas valoir NULL pour la compatibilite
avec les futures versions de Linux. (Depuis 1.3.28.)
GIO_SCRNMAP
Recupere la correspondance de l'ecran du noyau. argp pointe vers
un espace de taille E_TABSZ, qui recevra les positions de la
fonte utilisees pour afficher chaque caractere. Les informations
renvoyees par cet appel ne seront surement pas interessantes si
la fonte chargee a plus de 256 caracteres.
GIO_UNISCRNMAP
Recupere la correspondance Unicode complete du noyau. argp
pointe vers un espace de taille E_TABSZ*sizeof(unsigned short),
qui recevra la representation Unicode de chaque caractere. Un
jeu special d'Unicodes, demarrant a U+F000, est utilise pour
representation les correspondances directes avec les fontes
(<< direct to font mappings >>). (Depuis 1.3.1.)
PIO_SCRNMAP
Charge dans le noyau la table << definissable par
l'utilisateur >> (la quatrieme), qui fait la correspondance
entre octet et symboles a l'ecran de la console. argp pointe
vers un espace de taille E_TABSZ.
PIO_UNISCRNMAP
Charge dans le noyau la table << definissable par
l'utilisateur >> (la quatrieme), qui fait la correspondance
entre octet et Unicodes, qui sont alors convertis en symboles a
l'ecran d'apres la table de correspondance deja chargee entre
Unicode et fonte. Les Unicodes speciaux, demarrant a U+F000,
peuvent etre utilises pour une correspondance directe avec les
symboles de la fonte. (Depuis 1.3.1.)
GIO_UNIMAP
Recupere la correspondance Unicode/Fonte du noyau. argp pointe
vers une structure de type :
struct unimapdesc {
unsigned short entry_ct;
struct unipair *entries;
};
ou 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, eventuellement 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
Recupere 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 egal a une des
valeurs precedentes.
KDGKBMETA
Recupere le mode de gestion des meta-touches. argp pointe vers
un long qui prend une des valeurs suivantes :
K_METABIT 0x03 positionne le bit de poids fort
K_ESCPREFIX 0x04 prefixe pour les echappements
KDSKBMETA
Fixe le mode de gestion des meta-touches. argp est un long egal
a une des valeurs precedentes.
KDGKBENT
Recupere une entree 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 renseignes : kb_table
selectionne 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 positionne 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 entree de la table de traduction. argp pointe vers une
struct kbentry.
KDGKBSENT
Recupere la chaine 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 chaine (terminee par un caractere nul)
correspondant au code d'action de la kb_funcieme touche
fonction.
KDSKBSENT
Fixe la chaine 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];
};
ou kb_cnt est le nombre d'entrees dans le tableau, chaque entree
etant une structure de type :
struct kbdiacr {
unsigned char diacr;
unsigned char base;
unsigned char result;
};
KDGETKEYCODE
Lit une entree 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 a scancode. (89 <=
scancode <= 255 seulement. Pour 1 <= scancode <= 88,
keycode==scancode.) (Depuis 1.1.63.)
KDSETKEYCODE
Ecrit une entree de la table des codes touche du noyau. argp
pointe vers une struct kbkeycode. (Depuis 1.1.63.)
KDSIGACCEPT
Le processus signale sa volonte d'accepter le signal argp quand
il est genere en pressant une certaine combinaison de touches.
(1 <= argp <= NSIG). (Consultez spawn_console() dans
linux/drivers/char/keyboard.c)
VT_OPENQRY
Renvoie la premiere console disponible (non ouverte). argp
pointe vers un int auquel est affecte le numero du terminal
virtuel (1 <= *argp <= MAX_NR_CONSOLES).
VT_GETMODE
Recupere 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 positionne, met les ecritures en attente
et permet les ecritures, sinon */
short relsig; /* signal a lever en cas de liberation */
short acqsig; /* signal a lever en cas d'acquisition */
short frsig; /* pas utilise (mis a 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 controle par un processus
VT_ACKACQ changement de vt apres confirmation
VT_SETMODE
Fixe l'etat du terminal virtuel actif. argp pointe vers une
struct vt_mode.
VT_GETSTATE
Recupere l'information globale sur l'etat 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 a envoyer */
unsigned short v_state; /* masque de bits de terminaux virtuels */
};
Pour chaque terminal virtuel utilise, le bit correspondant de
v_state est positionne. (noyaux 1.0 a 1.1.92.)
VT_RELDISP
Libere un affichage.
VT_ACTIVATE
Passe au terminal virtuel argp (1 <= argp <= MAX_NR_CONSOLES).
VT_WAITACTIVE
Attend jusqu'a ce que le terminal virtuel argp soit active.
VT_DISALLOCATE
Libere la memoire associee au terminal virtuel argp. (Depuis
1.1.54.)
VT_RESIZE
Informe le noyau sur la taille de l'ecran. 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 utilise */
};
Notez que ca ne change pas le mode video. Consultez
resizecons(8). (Depuis 1.1.54.)
VT_RESIZEX
Informe le noyau de divers parametres de l'ecran. 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'ecran */
unsigned short v_clin; /* lignes de pixels
par caractere */
unsigned short v_vcol; /* colonnes de pixels
sur l'ecran */
unsigned short v_ccol; /* colonnes de pixels
par caractere */
};
Tout parametre peut etre mis a zero pour indiquer qu'aucun
changement n'est souhaite. Si plusieurs parametres sont
positionnes, ils doivent etre coherents. Notez que ca ne change
pas le mode video. Consultez resizecons(8). (Depuis 1.3.3.)
Les actions des ioctls suivants dependent du premier octet de la
structure pointee par argp, qui sera appele subcode par la suite. Elles
ne sont autorisees que pour le superutilisateur ou pour le proprietaire
du tty courant.
TIOCLINUX, subcode=0
Fait un cliche de l'ecran. A disparu dans le noyau 1.1.92. (Avec
les noyaux 1.1.92 et suivants, lisez /dev/vcsN ou /dev/vcsaN a
la place.)
TIOCLINUX, subcode=1
Recupere les informations sur la tache. A disparu dans 1.1.92.
TIOCLINUX, subcode=2
Fixe la selection. 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 debut. xe et ye la
colonne et la ligne de fin. (Le coin en haut a gauche a pour
coordonnees ligne=colonne=1.) sel_mode vaut 0 pour les
selections caractere par caractere, 1 pour les selections mot a
mot ou 2 pour les selections ligne a ligne. Les caracteres de
l'ecran indiques sont surlignes et sauves dans le tableau
statique sel_buffer de devices/char/console.c.
TIOCLINUX, subcode=3
Colle la selection. Les caracteres dans le tampon de la
selection sont ecrits dans fd.
TIOCLINUX, subcode=4
Arrete l'economiseur d'ecran.
TIOCLINUX, subcode=5
Fixe le contenu de la table de correspondance (de 256 bits)
definissant les caracteres d'un << mot >> pour une selection mot
a mot. (Depuis 1.1.32.)
TIOCLINUX, subcode=6
argp pointe vers un caractere qui prend la valeur de la variable
shift_state du noyau. (Depuis 1.1.32.)
TIOCLINUX, subcode=7
argp pointe vers un caractere qui prend la valeur de la variable
report_mouse du noyau. (Depuis 1.1.33.)
TIOCLINUX, subcode=8
Fait un cliche de largeur et de la hauteur de l'ecran, de la
position du curseur et de toutes les paires caractere-attribut.
(Noyaux 1.1.67 a 1.1.91 uniquement. Avec les noyaux 1.1.92 et
suivants, lisez /dev/vcsa* a la place.)
TIOCLINUX, subcode=9
Restaure la largeur et la hauteur de l'ecran, la position du
curseur et toutes les paires caractere-attribut. (Noyaux 1.1.67
a 1.1.91 uniquement. Avec les noyaux 1.1.92 et suivants, ecrivez
dans /dev/vcsa* a la place.)
TIOCLINUX, subcode=10
Gere les fonctionnalites de gestion d'energie de la nouvelle
generation de moniteurs. Le mode de veille d'ecran VESA est fixe
a argp[1], qui defini ce que la veille produit :
0 : La veille de l'ecran est desactivee.
1 : Les parametres du registre de l'adaptateur video sont
enregistres, puis le controleur est programme pour couper les
pulsations de synchronisation verticales. Ceci place le moniteur
en mode << standby >>. Si votre moniteur a un minuteur, il
finira par s'eteindre de lui-meme.
2 : Les parametres courants sont enregistres, puis les
pulsations de synchronisation verticales et horizontales sont
coupees. Ceci place votre moniteur en mode << off >>. Si votre
moniteur n'a pas de minuteur ou si vous souhaitez que votre
moniteur s'eteigne immediatement quand le minuteur de veille
arrive a bout, vous devriez choisir cette option. (Prudence :
Des extinctions frequentes abimeront votre moniteur.)
(Depuis 1.1.76)
VALEUR RENVOY'EE
En cas de succes, 0 est renvoye. En cas d'erreur, -1 est renvoye, est
errno est positionne.
ERREURS
errno peut prendre une de ces valeurs :
EBADF Le descripteur de fichier est invalide.
ENOTTY Le descripteur de fichier n'est pas associe avec un peripherique
special de type caractere ou la requete specifiee ne peut pas
lui etre appliquee.
EINVAL Le descripteur de fichier ou argp est n'est pas valable.
EPERM Droits insuffisants.
NOTES
Attention : ne considerez pas cette page de manuel comme une
documentation des ioctls des consoles Linux. Elle n'existe que pour
satisfaire votre curiosite, et pour vous eviter de lire les sources.
Les ioctls sont documentes a l'interieur de Linux et peuvent changer a
tout moment sans notification. (En realite, cette page decrit la
situation au moment du noyau 1.1.94 ; il existe des differences
mineures, voire plus importantes, avec les versions plus recentes.)
Tres souvent, les ioctls sont ajoutes 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 necessite.
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 recentes.
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.32 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Simon
Paillard et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.
Linux 28 fevrier 2009 CONSOLE_IOCTL(4)