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