1. NOM▲

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

2. SYNOPSIS ▲

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

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

3. DESCRIPTION ▲

ioperm() positionne les bits de permission d'accès du thread appelant aux ports commençant à l'adresse from étalés sur num bits. Si turn_on n'est pas nul, les autorisations correspondantes aux bits indiqués sont activées, sinon désactivées. Si turn_on est non nul, le thread appelant doit être privilégié (CAP_SYS_RAWIO). Avant Linux 2.6.8, seuls les 0x3ff premiers ports d'entrée-sortie pouvaient être indiqués de cette manière. Pour d'autres ports, il fallait utiliser l'appel système iopl(2) (avec un paramètre level de 3). Depuis Linux 2.6.8, 65 536 ports d'entrée-sortie peuvent être indiqués. Les permissions ne sont pas héritées par le processus fils durant un fork(2) : le process fils doit activer les permissions dont il en a besoin. En revanche, 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.

4. VALEUR RENVOYÉE ▲

S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en conséquence.

5. 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.

6. CONFORMITÉ ▲

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

7. NOTES ▲

Le fichier /proc/ioports indique les ports d'entrée-sortie actuellement alloués sur le système. 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.

8. VOIR AUSSI ▲

iopl(2), outb(2), capabilities(7)

9. COLOPHON ▲

Cette page fait partie de la publication 3.52 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/.

10. TRADUCTION ▲

Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

Christophe Blaess <http://www.blaess.fr/christophe/> (1996-2003), Alain Portal <http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».