zion - outb
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
Poster un commentaire