plucky (2) iopl.2.gz

Provided by: manpages-pl-dev_4.25.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⟩.