Loading

NOM

       ioperm - Positionner les autorisations d’entrée-sortie sur les ports

SYNOPSIS

       #include <unistd.h> /* pour libc5 */
       #include <sys/io.h> /* pour glibc */

       int ioperm(unsigned long from, unsigned long num, int turn_on);

       ioperm()  positionne  les  bits  de  permission  d’accès  du  processus
       appelant aux ports commençant à l’adresse from étalés sur num octets  à
       la  valeur  turn_on. Si turn_on est non nul, le processus appelant doit
       être privilégié (CAP_SYS_RAWIO).

       Seuls les 0x3ff premiers ports d’entrée-sortie peuvent être indiqués de
       cette  manière.  Pour  d’autres ports, il faut utiliser l’appel système
       iopl(2).

       Les permissions ne sont pas héritées par le processus  fils  durant  un
       fork(2),  par contre, elles le sont lors d’un execve(2). Ceci permet de
       donner des autorisations d’accès à des programmes non privilégiés.

       Cet appel existe principalement pour l’architecture i386. Sur  beaucoup
       d’autres  architectures,  il  est soit inexistant soit renvoie toujours
       une erreur.

VALEUR RENVOYÉE

       En cas de réussite, zéro est renvoyé, sinon -1  est  renvoyé  et  errno
       contient le code d’erreur.

ERREURS

       EINVAL Valeur invalide pour from ou num.

       EIO    (sur PowerPC) Cet appel n’est pas supporté.

       ENOMEM Plus de mémoire disponible.

       EPERM  L’appelant n’a pas les privilèges nécessaires.

CONFORMITÉ

       ioperm()  est  spécifique  a Linux et ne doit pas être utilisé dans des
       programmes destinés à être portables.

NOTES

       Libc5 considère qu’il s’agit d’un appel système et fournit le prototype
       dans  <unistd.h>.  glibc1  n’offre  pas de prototype. glibc2 fournit un
       prototype à la fois dans <sys/io.h> et  dans  <sys/perm.h>.  Évitez  ce
       dernier, il n’est disponible que sur les i386.

VOIR AUSSI

       iopl(2), capabilities(7)

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 Julien Cristau <jcristau@debian.org> 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> ».