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.