dwww Home | Manual pages | Find package

subpage_prot(2)               System Calls Manual              subpage_prot(2)

NOM
       subpage_prot - Définir une protection des sous-pages pour un intervalle
       d'adresses

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

SYNOPSIS
       #include <sys/syscall.h>      /* Définition des constantes SYS_* */
       #include <unistd.h>

       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(),  im-
       posant l'utilisation de syscall(2).

DESCRIPTION
       L'appel système subpage_prot() spécifique aux PowerPC fournit la possi-
       bilité de contrôler les permissions d'accès sur des sous-pages  indivi-
       duelles  de 4 ko sur des systèmes configurés avec une taille de page de
       64 ko.

       La table de protection est appliquée aux pages de mémoire dans  la  ré-
       gion  démarrant  à  addr et sur len octets. Ces deux paramètres doivent
       être alignés sur des frontières de 64 ko.

       La table de protection est spécifiée 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 spécifie 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 pointés par map doit valoir le nombre de pages de 64 ko indiqué
       par  len). Chaque champ de 2 bits dans la table de protection vaut soit
       0 pour autoriser tout accès, soit 1 pour interdire l'écriture,  soit  2
       ou 3 pour interdire tout accès.

VALEUR RENVOYÉE
       S'il  réussit  subpage_prot() renvoie 0. Sinon, il renvoie un des codes
       d'erreur définis ci-dessous.

ERREURS
       EFAULT Le tampon indiqué par map n'est pas accessible.

       EINVAL Les paramètres addr ou len sont incorrects. Ces deux  paramètres
              doivent  être  alignés sur un multiple de taille de page du sys-
              tème, et ne doivent pas désigner une région en dehors  de  l'es-
              pace  d'adressage  du  processus  ou une région qui contient des
              pages immenses.

       ENOMEM Plus assez de mémoire.

VERSIONS
       Cet appel système est disponible sur les architectures  PowerPC  depuis
       Linux 2.6.25.  L'appel  système  n'est disponible que si le noyau a été
       configuré avec CONFIG_PPC_64K_PAGES. Aucune prise en charge dans  l'es-
       pace utilisateur n'est disponible.

STANDARDS
       Cet appel système est spécifique à Linux.

NOTES
       Les protections de page habituelles (au niveau de chaque page de 64 ko)
       s'appliquent aussi ; le mécanisme de protection des sous-pages est  une
       contrainte  supplémentaire, ainsi un 0 dans un champ sur 2 bits ne per-
       mettra pas d'écrire sur une page qui est par ailleurs protégée en écri-
       ture.

   Justification
       Cet  appel  système  est  fourni pour aider l'écriture d'émulateurs qui
       opèrent avec des pages de 64 ko sur  des  systèmes  PowerPC.  Quand  on
       émule  des  systèmes  x86, qui utilisent une taille de page inférieure,
       l'émulateur ne peut plus utiliser l'unité de gestion de la mémoire (me-
       mory-management  unit,  ou  MMU)  et  les appels système habituels pour
       contrôler les protections de pages (l'émulateur pourrait émuler le  MMU
       en  vérifiant,  et  éventuellement  traduisant, chaque adresse mémoire,
       mais cela est lent). L'idée est que l'émulateur fournisse un tableau de
       masques  de  protections à appliquer sur un intervalle donné d'adresses
       virtuelles. Ces masques sont appliqués au  niveau  où  les  entrées  de
       tables  de pages (page-table entries, ou PTE) matérielles sont insérées
       dans la table de pages matérielles basées sur les PTE  Linux,  si  bien
       que  les PTE Linux ne sont pas affectées. Il en résulte que les régions
       de l'espace d'adressage qui sont protégées basculent vers des pages ma-
       térielles  de  4 ko au lieu de 64 ko (pour les machines qui prennent en
       charge des pages matérielles de 64 ko).

VOIR AUSSI
       mprotect(2), syscall(2)

       Documentation/admin-guide/mm/hugetlbpage.rst dans les sources du  noyau
       Linux.

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-Pierre  Giraud
       <jean-pierregiraud@neuf.fr>

       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                subpage_prot(2)

Generated by dwww version 1.15 on Sat Jun 29 01:44:27 CEST 2024.