arch_prctl

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
ARCH_PRCTL(2)		  Linux Programmer’s Manual		ARCH_PRCTL(2)



NAME
       arch_prctl - set architecture specific thread state

SYNOPSIS
       #include <asm/prctl.h>

       #include <sys/prctl.h>

       int arch_prctl(int code, unsigned long addr)

DESCRIPTION
       The  arch_prctl	function sets architecture specific process or thread
       state.  code selects a subfunction and passes argument addr to it.

       Sub functions for x86-64 are:

       ARCH_SET_FS
	      Set the 64bit base for the FS register to addr.

       ARCH_GET_FS
	      Return the 64bit base value for the FS register of the  current
	      thread in the unsigned long pointed to by the address parameter

       ARCH_SET_GS
	      Set the 64bit base for the GS register to addr.

       ARCH_GET_GS
	      Return the 64bit base value for the GS register of the  current
	      thread  in  the unsigned long pointed to by the address parame-
	      ter.

NOTES
       arch_prctl is only supported on Linux/x86-64 for 64bit  programs	 cur-
       rently.

       The 64bit base changes when a new 32bit segment selector is loaded.

       ARCH_SET_GS is disabled in some kernels.

       Context	switches for 64bit segment bases are rather expensive. It may
       be a faster alternative to set a 32bit base using a  segment  selector
       by   setting   up   an	LDT   with   modify_ldt(2)   or	  using	  the
       set_thread_area(2) system call in a 2.5 kernel.	 arch_prctl  is	 only
       needed when you want to set bases that are larger than 4GB.  Memory in
       the first 2GB of address space can be allocated by using mmap(2)	 with
       the MAP_32BIT flag.

       No prototype for arch_prctl in glibc 2.2. You have to declare it your-
       self for now.  This will be fixed in future glibc versions.

       FS may be already used by the threading library.

ERRORS
       EINVAL code is not a valid subcommand.

       EPERM  addr is outside the process address space.

       EFAULT addr points to an unmapped address or is	outside	 the  process
	      address space.

AUTHOR
       Man page written by Andi Kleen.

CONFORMANCE
       arch_prctl  is a Linux/x86-64 extension and should not be used in pro-
       grams intended to be portable.

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

       AMD X86-64 Programmer’s manual



Linux 2.4.20			  2003-02-02			ARCH_PRCTL(2)