summaryrefslogtreecommitdiffstats
path: root/upstream/debian-unstable/man2/arch_prctl.2
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-17 10:52:33 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-17 10:52:33 +0000
commit2c3307fb903f427be3d021c5780b75cac9af2ce8 (patch)
tree65cf431f40b7481d81ae2dfce9576342686448f7 /upstream/debian-unstable/man2/arch_prctl.2
parentReleasing progress-linux version 4.22.0-1~progress7.99u1. (diff)
downloadmanpages-l10n-2c3307fb903f427be3d021c5780b75cac9af2ce8.tar.xz
manpages-l10n-2c3307fb903f427be3d021c5780b75cac9af2ce8.zip
Merging upstream version 4.23.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'upstream/debian-unstable/man2/arch_prctl.2')
-rw-r--r--upstream/debian-unstable/man2/arch_prctl.232
1 files changed, 16 insertions, 16 deletions
diff --git a/upstream/debian-unstable/man2/arch_prctl.2 b/upstream/debian-unstable/man2/arch_prctl.2
index 04a3633f..93502219 100644
--- a/upstream/debian-unstable/man2/arch_prctl.2
+++ b/upstream/debian-unstable/man2/arch_prctl.2
@@ -2,7 +2,7 @@
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
-.TH arch_prctl 2 2023-03-30 "Linux man-pages 6.05.01"
+.TH arch_prctl 2 2024-05-02 "Linux man-pages 6.8"
.SH NAME
arch_prctl \- set architecture-specific thread state
.SH LIBRARY
@@ -13,11 +13,11 @@ Standard C library
.BR "#include <asm/prctl.h>" " /* Definition of " ARCH_* " constants */"
.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
.B #include <unistd.h>
-.PP
-.BI "int syscall(SYS_arch_prctl, int " code ", unsigned long " addr );
-.BI "int syscall(SYS_arch_prctl, int " code ", unsigned long *" addr );
+.P
+.BI "int syscall(SYS_arch_prctl, int " op ", unsigned long " addr );
+.BI "int syscall(SYS_arch_prctl, int " op ", unsigned long *" addr );
.fi
-.PP
+.P
.IR Note :
glibc provides no wrapper for
.BR arch_prctl (),
@@ -26,8 +26,8 @@ necessitating the use of
.SH DESCRIPTION
.BR arch_prctl ()
sets architecture-specific process or thread state.
-.I code
-selects a subfunction
+.I op
+selects an operation
and passes argument
.I addr
to it;
@@ -37,7 +37,7 @@ is interpreted as either an
for the "set" operations, or as an
.IR "unsigned long\ *" ,
for the "get" operations.
-.PP
+.P
Subfunctions for both x86 and x86-64 are:
.TP
.BR ARCH_SET_CPUID " (since Linux 4.12)"
@@ -120,8 +120,8 @@ is set to indicate the error.
points to an unmapped address or is outside the process address space.
.TP
.B EINVAL
-.I code
-is not a valid subcommand.
+.I op
+is not a valid operation.
.TP
.B ENODEV
.B ARCH_SET_CPUID
@@ -137,12 +137,12 @@ Linux/x86-64.
.SH NOTES
.BR arch_prctl ()
is supported only on Linux/x86-64 for 64-bit programs currently.
-.PP
+.P
The 64-bit base changes when a new 32-bit segment selector is loaded.
-.PP
+.P
.B ARCH_SET_GS
is disabled in some kernels.
-.PP
+.P
Context switches for 64-bit segment bases are rather expensive.
As an optimization, if a 32-bit TLS base address is used,
.BR arch_prctl ()
@@ -154,14 +154,14 @@ Memory in the first 2\ GB of address space can be allocated by using
with the
.B MAP_32BIT
flag.
-.PP
+.P
Because of the aforementioned optimization, using
.BR arch_prctl ()
and
.BR set_thread_area (2)
in the same thread is dangerous, as they may overwrite each other's
TLS entries.
-.PP
+.P
.I FS
may be already used by the threading library.
Programs that use
@@ -172,5 +172,5 @@ directly are very likely to crash.
.BR modify_ldt (2),
.BR prctl (2),
.BR set_thread_area (2)
-.PP
+.P
AMD X86-64 Programmer's manual