Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

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

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #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-IEȘIRE

       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.

STANDARDE

       Linux.

ISTORIC

       Linux 4.9, glibc 2.27.

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   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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                      pkey_alloc(2)