Scroll to navigation

IOPL(2) Linux-Programmierhandbuch IOPL(2)

BEZEICHNUNG

iopl - I/O-Privilegienstufe ändern

ÜBERSICHT

#include <sys/io.h>

int iopl(int Stufe);

BESCHREIBUNG

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

Die I/O-Privilegienstufe eines normalen Threads ist 0. Die Zugriffsrechte werden von den Eltern an die Kinder vererbt.

Dieser Aufruf ist als veraltet anzusehen und ist wesentlich langsamer als ioperm(2). Er wird nur für ältere X-Server bereitgestellt, die Zugriff auf alle 65536 E/A-Ports benötigen. Er ist hauptsächlich für die i386-Architektur bestimmt. 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
Stufe ist größer als 3.
ENOSYS
Dieser Aufruf ist nicht implementiert.
EPERM
Der aufrufende Thread 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.

Vor Linux 5.5 erlaubte iopl() dem Thread das Laufen in einer höheren I/O-Privilegienstufe. Dies wird wahrscheinlich das System zusammenbrechen lassen und wird nicht empfohlen.

Vor Linux 3.7 wurden die Rechte von mit fork(2) erstellten Kindern geerbt und wurden über execve(2) erhateln. Dieses Verhalten wurde versehentlich in Linux 3.7 geändert und wird nicht mehr wiederhergestellt.

SIEHE AUCH

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

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 5.10 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 https://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 die Mailingliste der Übersetzer.

13. August 2020 Linux