Loading

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