Available in

(2) (2)/de (2)/es (2)/fr (2)/ja (2)/ko (2)/nl (2)/pl (2)/pt

Contents

BEZEICHNUNG

iopl − ändere I/O-Privilegebene

ÜBERSICHT

#include <unistd.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).

COMMENTS

blog comments powered by Disqus