pkey_alloc(2) System Calls Manual pkey_alloc(2) NUME pkey_alloc, pkey_free - aloca sau elibereaza o cheie de protecie BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #define _GNU_SOURCE /* Consultai feature_test_macros(7) */ #include int pkey_alloc(unsigned int flags, unsigned int access_rights); int pkey_free(int pkey); DESCRIERE pkey_alloc() aloca o cheie de protecie (pkey) i permite ca aceasta sa fie transmisa la pkey_mprotect(2). Parametrul flags al pkey_alloc() este rezervat pentru utilizare viitoare i, in prezent, trebuie sa fie intotdeauna specificat ca fiind 0. Argumentul pkey_alloc() access_rights poate conine zero sau mai multe operaii de dezactivare: PKEY_DISABLE_ACCESS Dezactiveaza accesul tuturor datelor la memoria acoperita de cheia de protecie returnata. PKEY_DISABLE_WRITE Dezactiveaza accesul pentru scriere la memoria acoperita de cheia de protecie returnata. pkey_free() elibereaza o cheie de protecie i o face disponibila pentru alocari ulterioare. Dupa ce o cheie de protecie a fost eliberata, aceasta nu mai poate fi utilizata in nicio operaie legata de chei de protecie. O aplicaie nu ar trebui sa apeleze pkey_free() pe o cheie de protecie care a fost atribuita unui interval de adrese de catre pkey_mprotect(2) i care este inca in uz. Comportamentul in acest caz este nedefinit i poate duce la o eroare. VALOAREA RETURNATA In caz de succes, pkey_alloc() returneaza o valoare pozitiva a cheii de protecie. In caz de succes, pkey_free() returneaza zero. In caz de eroare, se returneaza -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EINVAL pkey, flags, sau access_rights nu este valid. ENOSPC (pkey_alloc()) Toate cheile de protecie disponibile pentru procesul curent au fost alocate. Numarul de chei disponibile este specific arhitecturii i implementarii i poate fi redus prin utilizarea anumitor chei in interiorul nucleului. In prezent, exista 15 chei disponibile pentru programele utilizator pe x86. Aceasta eroare va fi returnata i in cazul in care procesorul sau sistemul de operare nu accepta chei de protecie. Aplicaiile ar trebui sa fie intotdeauna pregatite sa gestioneze aceasta eroare, deoarece factori care nu pot fi controlai de aplicaie pot reduce numarul de chei de protecie disponibile. STANDARDE Linux. ISTORIC Linux 4.9, glibc 2.27. NOTE pkey_alloc() poate fi apelat intotdeauna in sigurana, indiferent daca sistemul de operare accepta sau nu chei de protecie. Acesta poate fi utilizat in locul oricarui alt mecanism de detectare a suportului pentru chei de protecie i va eua pur i simplu cu eroarea ENOSPC daca sistemul de operare nu suporta chei de protecie. Nucleul garanteaza ca coninutul registrului de drepturi hardware (PKRU) va fi pastrat numai pentru cheile de protecie alocate. Ori de cate ori o cheie este nealocata (fie inainte de primul apel care returneaza cheia respectiva de la pkey_alloc(), fie dupa ce aceasta este eliberata prin pkey_free()), nucleul poate efectua modificari arbitrare ale parilor din registrul de drepturi care afecteaza accesul la acea cheie. EXEMPLE A se vedea pkeys(7). CONSULTAI I pkey_mprotect(2), pkeys(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 pkey_alloc(2)