NOM¶
arch_prctl - Définir 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);
DESCRIPTION¶
La fonction
arch_prctl() défini 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.
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 définir une base
32 bits avec un sélecteur de segment en définissant 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 définir 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.65 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¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
http://manpagesfr.free.fr/> (2003-2006). Julien Cristau et
l'équipe francophone de traduction de Debian (2006-2009).
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> ».