Provided by: manpages-pl-dev_4.26.0-1_all 

NAZWA
iopl - zmienia poziom uprawnień wejścia/wyjścia
BIBLIOTEKA
Standardowa biblioteka C (libc, -lc)
SKŁADNIA
#include <sys/io.h>
[[przestarzałe]] int iopl(int level);
OPIS
iopl() zmienia poziom uprawnień wejścia/wyjścia wątku wywołującego na podstawie dwóch najmniej znaczących
bitów parametru level.
Poziom uprawnień wejścia/wyjścia dla normalnego wątku wynosi 0. Uprawnienia są dziedziczone z rodzica na
potomka.
To wywołanie jest przestarzałe, jest znacznie wolniejsze od ioperm(2) i jest zapewniane tylko dla
starszych serwerów X, które wymagają dostępu do wszystkich 65 536 portów wejścia/wyjścia. Jest
przeznaczone głównie do architektury i386. Na wielu innych architekturach nie istnieje lub zawsze zwraca
błąd.
WARTOŚĆ ZWRACANA
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1 i ustawiane errno, wskazując
błąd.
BŁĘDY
EINVAL level jest większy niż 3.
ENOSYS To wywołanie jest niezaimplementowane.
EPERM Wywołujący wątek jest niewystarczająco uprzywilejowany do wywołania iopl(); do podniesienia
poziomu uprawnień wejścia/wyjścia ponad ich aktualny poziom potrzebny jest przywilej CAP_SYS_RAWIO
(ang. capability).
WERSJE
glibc2 posiada prototyp zarówno w <sys/io.h>, jak i w <sys/perm.h>. Należy unikać tego ostatniego, gdyż
jest dostępne tylko na i386.
STANDARDY
Linux.
HISTORIA
Przed Linuksem 5.5 iopl() umożliwiało również wątkowi zablokowanie przerwań, przy pracy na wyższych
poziomach uprawnień wejścia/wyjścia. Prawdopodobnie spowodowałoby to załamanie systemu i nie jest to
zalecane.
Przed Linuksem 3.7, na niektórych architekturach (np. i386), uprawnienia były dziedziczone przez potomka
utworzonego za pomocą fork(2) i były zachowywane przez execve(2). To zachowanie zmieniło się
niepostrzeżenie w Linuksie 3.7 i nie zostanie przywrócone.
ZOBACZ TAKŻE
ioperm(2), outb(2), capabilities(7)
TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać
zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ
ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej manpages-pl-
list@lists.sourceforge.net.
Linux man-pages 6.9.1 2 maja 2024 r. iopl(2)