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
Libc5 behandelt ihn als Systemaufruf und hat einen Prototyp in <unistd.h>. Glibc1 hat diesen Prototyp nicht. 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
This page is part of release 3.80 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at 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>.