outb

Langue: fr

Version: 28 février 2000 (fedora - 16/08/07)

Autres sections - même nom

Section: 9 (Appels noyau Linux)

NOM

outb, outw, outl, outsb, outsw, outsl - Écrire sur un port d'E/S.
inb, inw, inl, insb, insw, insl - Lecture depuis un port d'E/S.
outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - Lire/Écrire avec un délai

DESCRIPTION

Cette famille de fonctions est utilisée pour des entrées/sorties de bas niveau.

Elles ont principalement été conçues pour un usage interne au noyau, mais sont quand même utilisables avec des processus utilisateurs, à condition de suivre les instructions suivantes.

Compiler le programme avec les options -O or -O2 ou équivalent. Ces fonctions sont en réalité des macros développées en ligne, et ne seront pas substituées sans valider l'optimisation. Ceci causerait des erreurs de références non résolues au moment de l'édition des liens.

Utiliser ioperm(2) ou éventuellement iopl(2) pour demander au noyau d'autoriser l'application à accéder aux ports d'entrées/sorties en question. Une omission de cette étape déclencherait une faute de segmentation.

HISTORIQUE

Les macros in[bw] et out[bw] ont pour origine les instructions équivalentes disponibles sur les processeurs ix86 (alias ia32) qui permettent d'accéder à l'espace mémoire utilisé par les périphériques. Sur d'autres architectures (m68k en particulier), les espaces mémoire système et d'entrée-sortie sont fusionnés (l'espace d'E/S utilise un emplacement fixe) et ces macros se développent en de classiques adressages mémoire.
De toutes façons, la représentation utilisée sur ix86 est incohérente puisque les concepteurs, bien qu'ayant créé un espace spécifique aux E/S, ont mappé dans la mémoire système les registres des cartes graphiques, ...

CONFORMITÉ

outb et les autres fonctions dépendent du matériel. Les arguments port et value sont dans l'ordre inverse de la plupart des mnémoniques implémentés dans les assembleurs disponibles sous DOS

VOIR AUSSI

ioperm(2), iopl(2)

TRADUCTION

Christophe Blaess, 1997 Thierry Vignaud <tvignaud@mandrakesoft.com>, 2000