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.44 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> ».