pkey_alloc(2) System Calls Manual pkey_alloc(2) NOM pkey_alloc, pkey_free - allouer ou liberer une cle de protection BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #define _GNU_SOURCE /* Consultez feature_test_macros(7) */ #include int pkey_alloc(unsigned int flags, unsigned int access_rights); int pkey_free(int pkey); DESCRIPTION pkey_alloc() alloue une cle de protection (pkey) et lui permet d'etre transmise a pkey_mprotect(2). L'argument de pkey_alloc() est reserve a une utilisation future et doit toujours valoir 0 actuellement. Le parametre access_rights de pkey_alloc() peut contenir zero ou plusieurs operations desactivees : PKEY_DISABLE_ACCESS Desactiver tous les acces aux donnees de la memoire geree par la cle de protection renvoyee. PKEY_DISABLE_WRITE Desactiver l'acces en ecriture a la memoire geree par la cle de protection renvoyee. pkey_free() libere une cle de protection et la rend disponible pour de futures allocations. Apres qu'une cle de protection a ete liberee, elle ne peut plus etre utilisee dans aucune operation de protection liee a une cle. Une application ne doit pas appeler pkey_free() sur une cle de protection qui a ete affectee a une plage d'adresses par pkey_mprotect(2) et en cours d'utilisation. Dans ce cas, le comportement n'est pas defini et peut aboutir a une erreur. VALEUR RENVOYEE En cas de succes, pkey_alloc() renvoie une valeur positive de cle de protection. En cas de succes, pkey_free() renvoie zero. En cas d'erreur, -1 est renvoye et errno est defini pour preciser l'erreur. ERREURS EINVAL pkey, flags ou access_rights n'est pas valable. ENOSPC (pkey_alloc()) Toutes les cles de protection disponibles pour le processus actuel ont ete allouees. Le nombre de cles disponibles est specifique a l'architecture et a l'implementation, il peut etre reduit par une utilisation interne du noyau de certaines cles. Il y a actuellement 15 cles disponibles pour les programmes de l'utilisateur sur x86. Cette erreur sera aussi renvoyee si le processeur ou le systeme d'exploitation ne gere pas les cles de protection. Les applications doivent toujours etre pretes a gerer cette erreur, puisque des facteurs hors de controle de l'application peuvent reduire le nombre de cles disponibles. STANDARDS Linux. HISTORIQUE Linux 4.9, glibc 2.27. NOTES Il est toujours sur d'appeler pkey_alloc(), que le systeme d'exploitation gere ou non les cles de protection. Il peut etre utilise a la place de tout autre mecanisme de detection de gestion de pkey et il echouera simplement avec l'erreur ENOSPC si le systeme d'exploitation ne gere pas pkey. Le noyau s'assure que le contenu des registres de droits du materiel (PKRU) ne sera conserve que pour les cles de protection allouees. A chaque fois qu'une cle n'est plus allouee (soit avant le premier appel renvoyant la cle a partir de pkey_alloc(), soit apres sa liberation par pkey_free()), le noyau peut effectuer des modifications arbitraires dans certaines parties du registre des droits concernant l'acces a cette cle. EXEMPLES Consultez pkeys(7). VOIR AUSSI pkey_mprotect(2), pkeys(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Philippe MENGUAL Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 pkey_alloc(2)