Provided by: manpages-es_1.55-10_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