Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       pkey_alloc, pkey_free - alocă sau eliberează o cheie de protecție

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #define _GNU_SOURCE             /* Consultați feature_test_macros(7) */
       #include <sys/mman.h>

       int pkey_alloc(unsigned int flags, unsigned int access_rights);
       int pkey_free(int pkey);

DESCRIERE

       pkey_alloc()   alocă   o   cheie  de  protecție  (pkey)  și  permite  ca  aceasta  să  fie  transmisă  la
       pkey_mprotect(2).

       Parametrul flags al pkey_alloc() este rezervat pentru utilizare viitoare și, în prezent, trebuie  să  fie
       întotdeauna specificat ca fiind 0.

       Argumentul pkey_alloc() access_rights poate conține zero sau mai multe operații de dezactivare:

       PKEY_DISABLE_ACCESS
              Dezactivează accesul tuturor datelor la memoria acoperită de cheia de protecție returnată.

       PKEY_DISABLE_WRITE
              Dezactivează accesul pentru scriere la memoria acoperită de cheia de protecție returnată.

       pkey_free()  eliberează  o  cheie de protecție și o face disponibilă pentru alocări ulterioare. După ce o
       cheie de protecție a fost eliberată, aceasta nu mai poate fi utilizată în nicio operație legată  de  chei
       de protecție.

       O  aplicație  nu  ar  trebui  să  apeleze  pkey_free() pe o cheie de protecție care a fost atribuită unui
       interval de adrese de către pkey_mprotect(2) și care este încă în uz. Comportamentul în  acest  caz  este
       nedefinit și poate duce la o eroare.

VALOAREA RETURNATĂ

       În  caz  de  succes,  pkey_alloc()  returnează o valoare pozitivă a cheii de protecție. În caz de succes,
       pkey_free() returnează zero. În caz de eroare, se returnează -1, iar  errno  este  configurată  pentru  a
       indica eroarea.

ERORI

       EINVAL pkey, flags, sau access_rights nu este valid.

       ENOSPC (pkey_alloc())  Toate  cheile  de  protecție  disponibile  pentru procesul curent au fost alocate.
              Numărul de chei disponibile este specific arhitecturii și implementării și  poate  fi  redus  prin
              utilizarea  anumitor  chei  în interiorul nucleului. În prezent, există 15 chei disponibile pentru
              programele utilizator pe x86.

              Această eroare va fi returnată și în cazul în care procesorul sau sistemul de operare  nu  acceptă
              chei  de  protecție.  Aplicațiile  ar  trebui  să  fie întotdeauna pregătite să gestioneze această
              eroare, deoarece factori care nu pot fi controlați de aplicație pot  reduce  numărul  de  chei  de
              protecție disponibile.

VERSIUNI

       pkey_alloc()  și  pkey_free() au fost adăugate în Linux 4.9; suportul pentru bibliotecă a fost adăugat în
       glibc 2.27.

STANDARDE

       Apelurile de sistem pkey_alloc() și pkey_free() sunt specifice Linux.

NOTE

       pkey_alloc() poate fi apelat întotdeauna în siguranță, indiferent dacă sistemul de operare acceptă sau nu
       chei de protecție.  Acesta poate fi utilizat în locul oricărui alt mecanism  de  detectare  a  suportului
       pentru  chei  de protecție și va eșua pur și simplu cu eroarea ENOSPC dacă sistemul de operare nu suportă
       chei de protecție.

       Nucleul garantează că conținutul registrului de drepturi hardware  (PKRU)  va  fi  păstrat  numai  pentru
       cheile  de  protecție  alocate.  Ori  de câte ori o cheie este nealocată (fie înainte de primul apel care
       returnează cheia respectivă de la pkey_alloc(), fie după ce aceasta  este  eliberată  prin  pkey_free()),
       nucleul  poate efectua modificări arbitrare ale părților din registrul de drepturi care afectează accesul
       la acea cheie.

EXEMPLE

       A se vedea pkeys(7).

CONSULTAȚI ȘI

       pkey_mprotect(2), pkeys(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 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.

Pagini de manual de Linux 6.03                  4 decembrie 2022                                   pkey_alloc(2)