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.
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¶
Diese Seite ist Teil der Veröffentlichung 3.74 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>.