mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andries.Brouwer@cwi.nl
To: linux-kernel@vger.kernel.org
Subject: syscall documentation (5 and last)
Date: Thu, 6 Feb 2003 21:12:06 +0100 (MET)	[thread overview]
Message-ID: <UTC200302062012.h16KC6Z23622.aeb@smtp.cwi.nl> (raw)

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2572 bytes --]

The fifth new page is arch_prctl.2.

Comments welcome.
Andries
aeb@cwi.nl

----------------------------------- 
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 FS 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 parameter.

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

       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 expen­
       sive. It may be a faster alternative to set a  32bit  base
       using  a  segment  selector by setting up an LDT with mod­
       ify_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 yourself 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 programs 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)

             reply	other threads:[~2003-02-06 20:02 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-06 20:12 Andries.Brouwer [this message]
2003-02-07 22:30 ` Jamie Lokier
2003-02-07 22:37 Andries.Brouwer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=UTC200302062012.h16KC6Z23622.aeb@smtp.cwi.nl \
    --to=andries.brouwer@cwi.nl \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®