Provided by: manpages-pl-dev_4.23.1-1_all bug

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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  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⟩.