IOPL(2)

BEZEICHNUNG
iopl - ändere I/O-Privilegebene

Diese Handbuchseite ist eventuell veraltet. Im Zweifelsfall ziehen Sie die englischsprachige Handbuchseite zu Rate, indem Sie

    man -LC 2 iopl

eingeben.

ÜBERSICHT
#include <sys/io.h>

int iopl(int level);

BESCHREIBUNG
iopl ändert die I/O-Privilegebene des aktuellen Prozesses wie angegeben in level. Dieser Aufruf ist notwendig, um 8514-kompatible X-Server unter Linux laufen zu lassen. Da diese X-Server Zugriff auf alle 65536 I/O-Ports benötigen, ist der Aufruf ioperm nicht ausreichend. Zusätzlich zu uneingeschränktem Zugriff auf I/O-Ports erlaubt das Laufen in einer höheren Privilegebene dem Prozess auch, Interrupts auszuschalten. Dies kann möglicherweise das System zusammenbrechen lassen und wird nicht empfohlen. Zugriffsrechte werden von fork und exec vererbt. Die I/O-Privilegebene eines normalen Prozesses ist 0.

RÜCKGABEWERT
Bei Erfolg wird Null zurückgegeben. Im Fehlerfall wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

EINVAL
    level ist größer als 3.

EPERM
    Der aktuelle User ist nicht der Superuser.

BEMERKUNGEN AUS DER KERNEL-SOURCE
iopl muss benutzt werden, wenn man die I/O-Ports hinter 0x3ff benutzen will: um alle 65536 Ports zu verzeichnen, braucht man 8kB Speicherplatz, was ein wenig übertrieben ist.

SIEHE AUCH
ioperm(2).