dwww Home | Manual pages | Find package

pkey_alloc(2)                 System Calls Manual                pkey_alloc(2)

NOM
       pkey_alloc, pkey_free - allouer ou libérer une clé de protection

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #define _GNU_SOURCE             /* Consultez feature_test_macros(7) */
       #include <sys/mman.h>

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

DESCRIPTION
       pkey_alloc()  alloue  une clé de protection (pkey) et lui permet d'être
       transmise à pkey_mprotect(2).

       L'argument de pkey_alloc() est réservé à une utilisation future et doit
       toujours valoir 0 actuellement.

       Le  paramètre  access_rights de pkey_alloc() peut contenir zéro ou plu-
       sieurs opérations désactivées :

       PKEY_DISABLE_ACCESS
              Désactiver tous les accès aux données de la mémoire gérée par la
              clé de protection renvoyée.

       PKEY_DISABLE_WRITE
              Désactiver  l'accès en écriture à la mémoire gérée par la clé de
              protection renvoyée.

       pkey_free() libère une clé de protection et la rend disponible pour  de
       futures allocations. Après qu'une clé de protection a été libérée, elle
       ne peut plus être utilisée dans aucune opération de protection  liée  à
       une clé.

       Une  application ne doit pas appeler pkey_free() sur une clé de protec-
       tion qui a été affectée à une plage d'adresses par pkey_mprotect(2)  et
       en  cours  d'utilisation. Dans ce cas, le comportement n'est pas défini
       et peut aboutir à une erreur.

VALEUR RENVOYÉE
       En cas de succès, pkey_alloc() renvoie une valeur positive  de  clé  de
       protection.  En  cas  de succès, pkey_free() renvoie zéro. En cas d'er-
       reur, -1 est renvoyé et errno est défini pour préciser l'erreur.

ERREURS
       EINVAL pkey, flags ou access_rights n'est pas valable.

       ENOSPC (pkey_alloc()) Toutes les clés de protection disponibles pour le
              processus actuel ont été allouées. Le nombre de clés disponibles
              est spécifique à l'architecture et à l'implémentation,  il  peut
              être  réduit  par  une utilisation interne du noyau de certaines
              clés. Il y a actuellement 15  clés  disponibles  pour  les  pro-
              grammes de l'utilisateur sur x86.

              Cette  erreur sera aussi renvoyée si le processeur ou le système
              d'exploitation ne gère pas les clés de protection. Les  applica-
              tions doivent toujours être prêtes à gérer cette erreur, puisque
              des facteurs hors de contrôle de l'application  peuvent  réduire
              le nombre de clés disponibles.

VERSIONS
       pkey_alloc()  et  pkey_free() ont été ajoutés à Linux 4.9 ; la prise en
       charge de la librairies a été ajoutée dans la glibc 2.27.

STANDARDS
       Les appels système pkey_alloc() et pkey_free() sont spécifiques  à  Li-
       nux.

NOTES
       Il  est toujours sûr d'appeler pkey_alloc(), que le système d'exploita-
       tion gère ou non les clés de protection. Il  peut  être  utilisé  à  la
       place  de  tout  autre  mécanisme de détection de gestion de pkey et il
       échouera simplement avec l'erreur ENOSPC si le  système  d'exploitation
       ne gère pas pkey.

       Le  noyau  s'assure  que le contenu des registres de droits du matériel
       (PKRU) ne sera conservé que pour les clés  de  protection  allouées.  À
       chaque  fois qu'une clé n'est plus allouée (soit avant le premier appel
       renvoyant la clé à partir de pkey_alloc(), soit après sa libération par
       pkey_free()),  le  noyau  peut  effectuer des modifications arbitraires
       dans certaines parties du registre  des  droits  concernant  l'accès  à
       cette clé.

EXEMPLES
       Consultez pkeys(7).

VOIR AUSSI
       pkey_mprotect(2), pkeys(7)

TRADUCTION
       La  traduction française de cette page de manuel a été créée par Chris-
       tophe Blaess <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <ste-
       phan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, Fran-
       çois Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe  Gué-
       rard  <fevrier@tigreraye.org>,  Jean-Luc  Coulon (f5ibh) <jean-luc.cou-
       lon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>,  Thomas  Huriaux
       <thomas.huriaux@gmail.com>,  Nicolas François <nicolas.francois@centra-
       liens.net>, Florentin Duneau <fduneau@gmail.com>, Simon  Paillard  <si-
       mon.paillard@resel.enst-bretagne.fr>,    Denis   Barbier   <barbier@de-
       bian.org>, David Prévot <david@tilapin.org>  et  Jean-Philippe  MENGUAL
       <jpmengual@debian.org>

       Cette traduction est une documentation libre ; veuillez vous reporter à
       la       GNU       General       Public        License        version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les conditions
       de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de  manuel,
       veuillez envoyer un message à ⟨debian-l10n-french@lists.debian.org⟩.

Pages du manuel de Linux 6.03   4 décembre 2022                  pkey_alloc(2)

Generated by dwww version 1.15 on Sat Jun 29 01:43:12 CEST 2024.