ARCH_PRCTL
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
NOM
SYNOPSIS
DESCRIPTION
NOTES
ERREURS
AUTEUR
CONFORMITÉ
VOIR AUSSI
TRADUCTION
NOM
arch_prctl - Fixe l'état spécifique à l'architecture.
SYNOPSIS
DESCRIPTION
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.
Les sous-fonctions pour les architectures x86-64 sont :
- ARCH_SET_FS
-
Remplit la base 64-bits pour le registre
FS
avec
adr.
- ARCH_GET_FS
-
Renvoie la base 64-bits pour le registre
FS
du thread en cours dans la variable
unsigned long
pointée par le
paramètre
adr.
- 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 le
paramètre
adr.
NOTES
arch_prctl
n'est seulement supporté sur Linux/x86-64 pour les programmes 64-bits.
La base 64-bits change lorsqu'un nouveau selecteur de segment 32-bits est chargé.
ARCH_SET_GS
est inactif dans certains noyaux.
Les changements de contextes 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.
arch_prctl
n'est utile que si vous désirez fixer des bases plus grandes que 4Go.
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.2. Vous devez le déclarer vous-même.
Ceci sera corrigé dans les futures versions de la GlibC.
FS
peut être déjà utilisé par la bibliothèque de multi-threading.
ERREURS
- EINVAL
-
code
n'est pas une sous-commande valide.
- EPERM
-
adr
pointe en dehors de l'espace d'adressage du processus.
- EFAULT
-
adr
pointe vers une adresse non affectée ou est en dehors de l'espace d'adressage.
AUTEUR
Page de manuel écrite par Andi Kleen.
CONFORMITÉ
arch_prctl
est une extension Linux/x86-64 et ne doit pas être employée dans un programme portable.
VOIR AUSSI
TRADUCTION
Christophe Blaess, 1996-2003.
|