IOPL(2) Manuel du programmeur Linux IOPL(2)
NOM
iopl - Changer le niveau de privilège d'entrée/sortie.
SYNOPSIS
#include <unistd.h> /* pour libc5 */
#include <sys/io.h> /* pour glibc */
int iopl(int level);
DESCRIPTION
iopl change le niveau de privilège pour les entrées/sor
ties du processus courant, en utilisant la valeur
spécifiée dans level.
Cette fontion est indispensable pour permettre aux
serveurs X compatibles 8514 de fonctionner sous Linux.
Comme ces serveurs X ont besoin de l'accès aux 65536 ports
d'entrée/sortie, la fonction ioperm ne serait pas suff
isante.
En plus de disposer d'un accès illimité aux ports
d'entree/sortie, un processus tournant à un niveau de
privilège élevé pourra également inhiber les interrup
tions. Ceci risque d'engendrer un plantage du système, et
est fortement déconseillé.
Les permissions sont héritées aussi bien par fork que par
exec.
Le niveau de privilège d'entrée/sortie pour un utilisateur
normal vaut 0.
VALEUR RENVOYÉE
iopl renvoie 0 s'il réussit, ou -1 s'il échoue, auquel cas
errno contient le code d'erreur.
ERREURS
EINVAL level est plus grand que 3.
EPERM L'utilisateur actuel n'est pas le Super-User.
NOTES EXTRAITES DES SOURCES DU NOYAU
iopl doit être utilisé lorsque l'on veut accèder aux ports
au-dessus de la limite 0x3FF. Pour obtenir une image
bitmap des 65536 ports, il faudrait disposer de 8Ko de
bitmap par processus, ce qui est un peu excessif.
CONFORMITÉ
iopl est spécifique à Linux et ne doit pas être utilisé
dans des programmes conçus pour être portables.
NOTES
Libc5 considère qu'il s'agit d'un appel-système et fournit
Linux 18 Mai 1999 1
IOPL(2) Manuel du programmeur Linux IOPL(2)
le prototype dans <unistd.h>. Glibc1 n'offre pas de pro
totype. Glibc2 fournit un prototype à la fois dans
<sys/io.h> et dans <sys/perm.h>. Evitez ce dernier, il
n'est disponible que sur les i386.
VOIR AUSSI
ioperm(2)
TRADUCTION
Christophe Blaess, 1997.
Linux 18 Mai 1999 2