IOPL(2)

BEZEICHNUNG
iopl - I/O-Privilegienstufe ändern

ÜBERSICHT
#include <sys/io.h>

int iopl(int level);

BESCHREIBUNG
iopl() ändert die E/A-Privilegienstufe des aufrufenden Prozesses wie durch die zwei niedrigstwertigen Bits in level angegeben.

Dieser Aufruf ist notwendig, um 8514-kompatible X-Server unter Linux auszuführen. Da diese X-Server Zugriff auf alle 65536 I/O-Ports benötigen, ist der Aufruf ioperm(2) nicht ausreichend.

Zusätzlich zu uneingeschränktem Zugriff auf I/O-Ports erlaubt das Laufen in einer höheren I/O-Privilegienstufe dem Prozess auch, Interupts auszuschalten. Dies wird wahrscheinlich das System zusammenbrechen lassen und wird nicht empfohlen.

Zugriffsrechte werden von fork(2) und execve(2) vererbt.

Die I/O-Privilegienstufe eines normalen Prozesses ist 0.

Der Aufruf ist hauptsächlich für die i386-Architektur. Auf vielen anderen Architekturen existiert er nicht und wird immer einen Fehler zurückliefern.

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

FEHLER

EINVAL
    level ist größer als 3.

ENOSYS
    Dieser Aufruf ist nicht implementiert.

EPERM
    Der aufrufende Prozess hat unzureichende Privilegien, um iopl() aufzurufen; die Capability CAP_SYS_RAWIO wird benötigt, um die E/A-Privilegienstufe über deren aktuellen Wert zu erhöhen.

KONFORM ZU
iopl() ist Linux-spezifisch und sollte nicht in Programmen verwandt werden, die portabel sein sollen.

ANMERKUNGEN
Glibc2 hat einen Prototyp sowohl in <sys/io.h> als auch in <sys/perm.h>. Vermeiden Sie letzteren, er ist nur auf i386 verfügbar.

SIEHE AUCH
ioperm(2), outb(2), capabilities(7)

KOLOPHON
Diese Seite ist Teil der Veröffentlichung 4.04 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net>, Helge Kreutzmann <debian@helgefjell.de> und Mario Blättermann <mario.blaettermann@gmail.com> 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 <debian-l10n-german@lists.debian.org>.