arch_prctl man page on Ubuntu

Man page or keyword search:  
man Server   6591 pages
apropos Keyword Search (all sections)
Output format
Ubuntu logo
[printable version]

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);
       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; addr
       is  interpreted as either an unsigned long for the "set" operations, or
       as an unsigned long *, for the "get" operations.

       Sub functions for x86-64 are:

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

       ARCH_GET_FS
	      Return the 64-bit base value for the FS register of the  current
	      thread in the unsigned long pointed to by addr.

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

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

RETURN VALUE
       On success, arch_prctl() returns 0; on error, -1 is returned, and errno
       is set to indicate the error.

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

       EINVAL code is not a valid subcommand.

       EPERM  addr is outside the process address space.

CONFORMING TO
       arch_prctl() is a Linux/x86-64 extension and should not be used in pro‐
       grams intended to be portable.

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

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

       ARCH_SET_GS is disabled in some kernels.

       Context switches for 64-bit segment bases are rather expensive.	It may
       be  a  faster alternative to set a 32-bit base using a segment selector
       by setting up an LDT with modify_ldt(2) or using the set_thread_area(2)
       system  call  in kernel 2.5 or later.  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.

       As of version 2.7, glibc provides no prototype for  arch_prctl().   You
       have to declare it yourself for now.  This may be fixed in future glibc
       versions.

       FS may be already used by the threading library.

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

       AMD X86-64 Programmer's manual

COLOPHON
       This page is part of release 3.23 of the Linux  man-pages  project.   A
       description  of	the project, and information about reporting bugs, can
       be found at http://www.kernel.org/doc/man-pages/.

Linux				  2007-12-26			 ARCH_PRCTL(2)
[top]

List of man pages available for Ubuntu

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net