iopl - I/O-Privilegienstufe ändern
Standard-C-Bibliothek (
libc,
-lc)
#include <sys/io.h>
[[veraltet]] int iopl(int Stufe);
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.
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1
zurückgegeben und
errno gesetzt, um den Fehler anzuzeigen.
- 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.
iopl() ist Linux-spezifisch und sollte nicht in Programmen verwandt
werden, die portabel sein sollen.
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.
ioperm(2),
outb(2),
capabilities(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother
<
[email protected]>, Helge Kreutzmann <
[email protected]> und Mario
Blättermann <
[email protected]> 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