modify_ldt.2: Use syscall(SYS_...); for system calls without a wrapper

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
This commit is contained in:
Alejandro Colomar 2021-05-10 19:55:32 +02:00 committed by Michael Kerrisk
parent 0eefb56c95
commit 57d2facb78
1 changed files with 10 additions and 5 deletions

View File

@ -27,11 +27,19 @@
modify_ldt \- get or set a per-process LDT entry
.SH SYNOPSIS
.nf
.BI "int modify_ldt(int " func ", void *" ptr ", unsigned long " bytecount );
.BR "#include <asm/ldt.h>" " /* Definition of " "struct user_desc" " */"
.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
.B #include <unistd.h>
.PP
.BI "int syscall(SYS_modify_ldt, int " func ", void *" ptr ,
.BI " unsigned long " bytecount );
.fi
.PP
.IR Note :
There is no glibc wrapper for this system call; see NOTES.
glibc provides no wrapper for
.BR modify_ldt (),
necessitating the use of
.BR syscall (2).
.SH DESCRIPTION
.BR modify_ldt ()
reads or writes the local descriptor table (LDT) for a process.
@ -168,9 +176,6 @@ is neither 0, 1, 2, nor 0x11.
This call is Linux-specific and should not be used in programs intended
to be portable.
.SH NOTES
Glibc does not provide a wrapper for this system call; call it using
.BR syscall (2).
.PP
.BR modify_ldt ()
should not be used for thread-local storage, as it slows down context
switches and only supports a limited number of threads.