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