subpage_prot(2) System Calls Manual subpage_prot(2) NOM subpage_prot - Definir une protection des sous-pages pour un intervalle d'adresses BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include /* Definition des constantes SYS_* */ #include int syscall(SYS_subpage_prot, unsigned long addr, unsigned long len, uint32_t *map); Remarque: la glibc ne fournit pas d'enveloppe pour subpage_prot(), imposant l'utilisation de syscall(2). DESCRIPTION L'appel systeme subpage_prot() specifique aux PowerPC fournit la possibilite de controler les permissions d'acces sur des sous-pages individuelles de 4 ko sur des systemes configures avec une taille de page de 64 ko. La table de protection est appliquee aux pages de memoire dans la region demarrant a addr et sur len octets. Ces deux parametres doivent etre alignes sur des frontieres de 64 ko. La table de protection est specifiee dans le tampon dont l'adresse est fournie dans map. La table contient 2 bits par sous-page de 4 ko ; ainsi chaque mot de 32 bits specifie les protections de 16 sous-pages de 4 ko dans une page de 64 ko (on voit donc que le nombre de mots 32 bits pointes par map doit valoir le nombre de pages de 64 ko indique par len). Chaque champ de 2 bits dans la table de protection vaut soit 0 pour autoriser tout acces, soit 1 pour interdire l'ecriture, soit 2 ou 3 pour interdire tout acces. VALEUR RENVOYEE S'il reussit subpage_prot() renvoie 0. Sinon, il renvoie un des codes d'erreur definis ci-dessous. ERREURS EFAULT Le tampon indique par map n'est pas accessible. EINVAL Les parametres addr ou len sont incorrects. Ces deux parametres doivent etre alignes sur un multiple de taille de page du systeme, et ne doivent pas designer une region en dehors de l'espace d'adressage du processus ou une region qui contient des pages immenses. ENOMEM Plus assez de memoire. STANDARDS Linux. HISTORIQUE Linux 2.6.25 (PowerPC). L'appel systeme n'est disponible que si le noyau a ete configure avec CONFIG_PPC_64K_PAGES. NOTES Les protections de page habituelles (au niveau de chaque page de 64 ko) s'appliquent aussi ; le mecanisme de protection des sous-pages est une contrainte supplementaire, ainsi un 0 dans un champ sur 2 bits ne permettra pas d'ecrire sur une page qui est par ailleurs protegee en ecriture. Justification Cet appel systeme est fourni pour aider l'ecriture d'emulateurs qui operent avec des pages de 64 ko sur des systemes PowerPC. Quand on emule des systemes x86, qui utilisent une taille de page inferieure, l'emulateur ne peut plus utiliser l'unite de gestion de la memoire (memory-management unit, ou MMU) et les appels systeme habituels pour controler les protections de pages (l'emulateur pourrait emuler le MMU en verifiant, et eventuellement traduisant, chaque adresse memoire, mais cela est lent). L'idee est que l'emulateur fournisse un tableau de masques de protections a appliquer sur un intervalle donne d'adresses virtuelles. Ces masques sont appliques au niveau ou les entrees de tables de pages (page-table entries, ou PTE) materielles sont inserees dans la table de pages materielles basees sur les PTE Linux, si bien que les PTE Linux ne sont pas affectees. Il en resulte que les regions de l'espace d'adressage qui sont protegees basculent vers des pages materielles de 4 ko au lieu de 64 ko (pour les machines qui prennent en charge des pages materielles de 64 ko). VOIR AUSSI mprotect(2), syscall(2) Documentation/admin-guide/mm/hugetlbpage.rst dans les sources du noyau Linux. 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-Pierre Giraud 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 subpage_prot(2)