IOPL(2)

NOM
iopl - Changer le niveau de privilege d'entree/sortie.

SYNOPSIS
#include <unistd.h>

int iopl(int level);

DESCRIPTION
iopl change le niveau de privilege pour les entrees/sorties du processus courant, en utilisant la valeur specifiee 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'acces aux 65536 ports d'entree/sortie, la fonction ioperm ne serait pas suffisante. En plus de disposer d'un acces illimite aux ports d'entree/sortie, un processus tournant a un niveau de privilege eleve pourra egalement inhiber les interruptions. Ceci risque d'engendrer un plantage du systeme, et est fortement deconseille. Les permissions sont heritees aussi bien par fork que par exec. Le niveau de privilege d'entree/sortie pour un utilisateur normal vaut 0.

VALEUR RENVOYEE
iopl renvoie 0 s'il reussit, ou -1 s'il echoue, 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 etre utilise lorsque l'on veut acceder 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.

CONFORMITE
iopl est specifique a Linux et ne doit pas etre utilise dans des programmes concus pour etre portables.

VOIR AUSSI
ioperm(2)