Provided by: manpages-es_1.55-9_all bug

NOMBRE

       arch_prctl   -  Fija  el  estado  de  un  hilo  para  una  arquitectura
       específica.

SINOPSIS

       #include <asm/prctl.h>

       #include <sys/prctl.h>

       int arch_prctl(int code, unsigned long addr)

DESCRIPCIÓN

       La función arch_prctl fija el estado de un  hilo  o  proceso  para  una
       arquitectura  específica.   code  escoge  una  subfunción  y le pasa el
       argumento addr.

       Las subfunciones para la arquitectura x86-64 son:

       ARCH_SET_FS
              Establece la base de 64 bits para el registro FS a addr.

       ARCH_GET_FS
              Devuelve el valor de base de 64 bits para  el  registro  FS  del
              hilo  actual  en  la  variable  unsigned  long  apuntada  por el
              parámetro address

       ARCH_SET_GS
              Establece la base de 64 bits para el registro GS a addr.

       ARCH_GET_GS
              Devuelve el valor de base 64 bits para el registro GS  del  hilo
              actual  en  la  variable unsigned long apuntada por el parámetro
              address.

OBSERVACIONES

       En la actualidad arch_prctl es soportada solamente  por  la  plataforma
       Linux/x86-64 para programas de 64 bits.

       La base de 64 bits cambia cuando se carga un nuevo selector de segmento
       de 32 bits.

       ARCH_SET_GS está deshabilitado en algunos núcleos.

       Los cambios de contexto para las bases  de  segmento  de  64  bits  son
       bastante  costosos.  Una alternativa más rápida sería fijar una base de
       32 bits  usando  un  selector  de  segmento  configurando  un  LDT  con
       modify_ldt(2)  o  usando la llamada al sistema set_thread_area(2) en un
       núcleo  2.5.   arch_prctl  solamente  se  necesita  cuando  se  quieren
       establecer  bases  mayores  de 4GB.  La memoria en los primeros 2GB del
       espacio de direcciones puede ser asignada usando mmap(2) con la  opción
       MAP_32BIT.

       No  existe  el  prototipo  de  arch_prctl  en  glibc  2.2. Es tarea del
       programador declararlo por sí mismo.  Este inconveniente será subsanado
       en versiones futuras de glibc.

       FS puede estar ya usado por la biblioteca de hilos.

ERRORES

       EINVAL code no es un subcomando válido.

       EPERM  addr está fuera del espacio de direcciones.

       EFAULT addr  apunta  a  una  dirección no asignada o que está fuera del
              espacio de direcciones del proceso.

AUTOR

       Página de manual escrita por Andi Kleen.

CONFORME A

       arch_prctl es una extensión de Linux/x86-64 y no debería  emplearse  en
       programas que se pretenden que sean portables.

VÉASE TAMBIÉN

       mmap(2), modify_ldt(2), prctl(2), set_thread_area(2)

       Manual del Programador de AMD X86-64