iopl(2)

NUME
iopl - modifică nivelul de privilegii de In/Ieș

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <sys/io.h>

[[depreciat]] int iopl(int level);

DESCRIERE
iopl() modifică nivelul de privilegii de intrare/ieșire al firului apelant, așa cum este specificat de cei doi biți mai puțin semnificativi din level.

Nivelul de privilegii In/Ieș pentru un fir normal este 0. Permisiunile sunt moștenite de la părinți la copii.

Acest apel este depreciat, este semnificativ mai lent decât ioperm(2) și este furnizat numai pentru serverele X mai vechi care necesită acces la toate cele 65536 de porturi de In/Ieș. Este destinată în principal arhitecturii i386. Pe multe alte arhitecturi nu există sau va returna întotdeauna o eroare.

VALOAREA RETURNATĂ
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI

EINVAL
    level este mai mare de 3.

ENOSYS
    Acest apel nu este implementat.

EPERM
    Firul apelant nu are privilegii suficiente pentru a apela iopl(); capacitatea CAP_SYS_RAWIO este necesară pentru a ridica nivelul de privilegii de In/Ieș peste valoarea sa curentă.

VERSIUNI
glibc2 are un prototip atât în <sys/io.h> cât și în <sys/perm.h>. Evitați-l pe acesta din urmă, este disponibil doar pe i386.

STANDARDE
Linux.

ISTORIC
Înainte de Linux 5.5, iopl() permitea firului să dezactiveze întreruperile în timp ce rulează la un nivel superior de privilegii In/Ieș. Acest lucru va duce probabil la blocarea sistemului și nu este recomandat.

Înainte de Linux 3.7, pe unele arhitecturi (cum ar fi i386), permisiunile were erau moștenite de copilul produs de fork(2) și erau păstrate pe execve(2). Acest comportament a fost modificat din greșeală în Linux 3.7 și nu va fi restabilit.

CONSULTAȚI ȘI
ioperm(2), outb(2), capabilities(7)

TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.