ioperm(2) System Calls Manual ioperm(2)

ioperm - stabilește permisiunile de intrare/ieșire a porturilor

Biblioteca C standard (libc, -lc)

#include <sys/io.h>
int ioperm(unsigned long from, unsigned long num, int turn_on);

ioperm() stabilește biții de permisiune de acces la port pentru firul apelant pentru num biți începând de la adresa de port from. Dacă turn_on este diferit de zero, atunci permisiunea pentru biții specificați este activată; în caz contrar, este dezactivată. Dacă turn_on este diferit de zero, firul apelant trebuie să fie privilegiat (CAP_SYS_RAWIO).

Înainte de Linux 2.6.8, numai primele porturi I/O 0x3ff puteau fi specificate în acest mod. Pentru mai multe porturi, trebuia să se utilizeze apelul de sistem iopl(2) (cu un argument level de 3). Începând cu Linux 2.6.8, pot fi specificate 65.536 de porturi In/Ieș.

Permisiunile sunt moștenite de procesul-copil creat de fork(2) (a se vedea însă NOTE). Permisiunile sunt păstrate în execve(2); acest lucru este util pentru a acorda permisiuni de acces la porturi programelor neprivilegiate.

Acest apel este destinat în special arhitecturii i386. Pe multe alte arhitecturi nu există sau va returna întotdeauna o eroare.

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

Valori nevalide pentru from sau num.Invalid values for from or num.
(pe PowerPC) Acest apel nu este suportat
Memorie insuficientă.
Firul apelant nu are privilegii suficiente.

glibc are un prototip ioperm() 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.

Linux.

Înainte de Linux 2.4, permisiunile nu erau moștenite de un proces-copil creat de fork(2).

Fișierul /proc/ioports arată porturile In/Ieș care sunt alocate în prezent pe sistem.

iopl(2), outb(2), capabilities(7)

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

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 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.

31 octombrie 2023 Pagini de manual de Linux 6.06