outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p,
outw_p, outl_p, inb_p, inw_p, inl_p - Ein-/Ausgabe mittels Ports
Standard-C-Bibliothek (
libc,
-lc)
#include <sys/io.h>
unsigned char inb(unsigned short port);
unsigned char inb_p(unsigned short port);
unsigned short inw(unsigned short port);
unsigned short inw_p(unsigned short port);
unsigned int inl(unsigned short port);
unsigned int inl_p(unsigned short port);
void outb(unsigned char value, unsigned short port);
void outb_p(unsigned char value, unsigned short port);
void outw(unsigned short value, unsigned short port);
void outw_p(unsigned short value, unsigned short port);
void outl(unsigned int value, unsigned short port);
void outl_p(unsigned int value, unsigned short port);
void insb(unsigned short port, void Adr[.Anzahl],
unsigned long Anzahl);
void insw(unsigned short port, void Adr[.Anzahl],
unsigned long Anzahl);
void insl(unsigned short port, void Adr[.Anzahl],
unsigned long Anzahl);
void outsb(unsigned short port, const void Adr[.Anzahl],
unsigned long Anzahl);
void outsw(unsigned short port, const void Adr[.Anzahl],
unsigned long Anzahl);
void outsl(unsigned short port, const void Adr[.Anzahl],
unsigned long Anzahl);
Diese Funktionenfamilie dient zur systemnahen Ein- und Ausgabe auf
Hardwareschnittstellen (Ports). Die Out*-Funktionen schreiben dorthin, die
In*-Funktionen lesen von dort. Die Suffixe bedeuten: b - die Funktion
bearbeitet Byte; w - die Funktion bearbeitet Worte; _p - die Funktion pausiert
bis zum Abschluss des E/A-Vorgangs.
Sie wurden ursprünglich als interne Kernelfunktionen konzipiert,
können aber auch in User-Space-Programmen verwendet werden.
Sie müssen die Funktionen mit
-O oder
-O2 oder
ähnlichem kompilieren. Die Funktionen sind als Inline-Makros definiert
und werden ohne aktivierte Optimierungen nicht eingefügt, was zu nicht
aufgelösten Verweisen während des Linkvorgangs führt.
Durch
ioperm(2) oder alternativ auch
iopl(2) wird der Kernel
angewiesen, Benutzeranwendungen den Zugriff auf die betreffenden Ein- und
Ausgabeschnittstellen zu gestatten. Wird dies nicht gemacht, treten in der
Anwendung Speicherzugriffsfehler auf.
outb() und Co. sind hardwarespezifisch. Die Argumente
value und
port werden in dieser Reihenfolge übergeben. Die meisten
DOS-Implementierungen verwenden die umgekehrte Reihenfolge.
ioperm(2),
iopl(2)
Die deutsche Übersetzung dieser Handbuchseite wurde von Ralf Demmer
<
[email protected]> und Martin Eberhard Schauer
<
[email protected]> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU
General Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken
Sie bitte eine E-Mail an die
Mailingliste
der Übersetzer