NOM
arch_prctl - Fixer l’état spécifique à l’architecture
SYNOPSIS
#include <asm/prctl.h>
#include <sys/prctl.h>
int arch_prctl(int code, unsigned long addr);
int arch_prctl(int code, unsigned long *addr);
La fonction arch_prctl() fixe l’état spécifique à l’architecture pour
le thread ou le processus. code sélectionne une sous‐fonction et lui
passe l’argument addr ; addr est interprété comme un unsigned long pour
les opérations « set », ou comme un unsigned long *, pour les
opérations « get ».
Les sous‐fonctions pour l’architecture x86-64 sont :
ARCH_SET_FS
Remplit la base 64 bits pour le registre FS avec addr.
ARCH_GET_FS
Renvoie la base 64 bits pour le registre FS du thread en cours
dans la variable unsigned long pointée par addr.
ARCH_SET_GS
Remplit la base 64 bits pour le registre GS avec addr.
ARCH_GET_GS
Renvoie la base 64 bits pour le registre GS du thread en cours
dans la variable unsigned long pointée par addr.
VALEUR RENVOYÉE
S’il réussit, arch_prctl() renvoie zéro. En cas d’erreur, il renvoie -1
et remplit errno avec la valeur d’erreur.
ERREURS
EFAULT addr pointe vers une adresse non affectée ou est en dehors de
l’espace d’adressage.
EINVAL code n’est pas une sous‐commande valide.
EPERM addr pointe en dehors de l’espace d’adressage du processus.
CONFORMITÉ
arch_prctl() est une extension Linux/x86-64 et ne doit pas être
employée dans un programme portable.
NOTES
arch_prctl() n’est supporté sur Linux/x86-64 que pour les programmes
64 bits.
La base 64 bits change lorsqu’un nouveau sélecteur de segment 32 bits
est chargé.
ARCH_SET_GS est inactif dans certains noyaux.
Les changements de contexte pour les bases 64 bits sont assez coûteux.
Il peut être plus rapide de fixer une base 32 bits avec un sélecteur de
segment en fixant une LDT avec modify_ldt(2) ou en utilisant l’appel
système set_thread_area(2) des noyaux 2.5 et suivants. arch_prctl()
n’est utile que si vous désirez fixer des bases plus grandes que 4 Go.
La mémoire dans les premiers 2 Go d’adressage peut être allouée en
utilisant mmap(2) avec l’attribut MAP_32BIT.
Il n’y a pas de prototype pour arch_prctl() dans la glibc 2.7. Vous
devez le déclarer vous‐même. Ceci sera peut‐être corrigé dans les
futures versions de la glibc.
FS peut être déjà utilisé par la bibliothèque de multi‐threading.
VOIR AUSSI
mmap(2), modify_ldt(2), prctl(2), set_thread_area(2)
Manuel du programmeur AMD X86-64
COLOPHON
Cette page fait partie de la publication 3.23 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent être trouvées à l’adresse
http://www.kernel.org/doc/man-pages/.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par Christophe
Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
disposition sur http://manpagesfr.free.fr/.
Les mises à jour et corrections de la version présente dans Debian sont
directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document
en utilisant la commande « man -L C <section> <page_de_man> ».