membarrier.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:28 +02:00 committed by Michael Kerrisk
parent 3977e9ff1f
commit 39df5bd6bc
1 changed files with 10 additions and 6 deletions

View File

@ -28,13 +28,20 @@ membarrier \- issue memory barriers on a set of threads
.SH SYNOPSIS .SH SYNOPSIS
.nf .nf
.PP .PP
.B #include <linux/membarrier.h> .BR "#include <linux/membarrier.h>" \
" /* Definition of " MEMBARRIER_* " constants */"
.BR "#include <sys/syscall.h>" " /* Definition of " SYS_* " constants */"
.B #include <unistd.h>
.PP .PP
.BI "int membarrier(int " cmd ", unsigned int " flags ", int " cpu_id ); .BI "int syscall(SYS_membarrier, int " cmd ", unsigned int " flags \
", int " cpu_id );
.fi .fi
.PP .PP
.IR Note : .IR Note :
There is no glibc wrapper for this system call; see NOTES. glibc provides no wrapper for
.BR membarrier (),
necessitating the use of
.BR syscall (2).
.SH DESCRIPTION .SH DESCRIPTION
The The
.BR membarrier () .BR membarrier ()
@ -322,9 +329,6 @@ Examples where
.BR membarrier () .BR membarrier ()
can be useful include implementations can be useful include implementations
of Read-Copy-Update libraries and garbage collectors. of Read-Copy-Update libraries and garbage collectors.
.PP
Glibc does not provide a wrapper for this system call; call it using
.BR syscall (2).
.SH EXAMPLES .SH EXAMPLES
Assuming a multithreaded application where "fast_path()" is executed Assuming a multithreaded application where "fast_path()" is executed
very frequently, and where "slow_path()" is executed infrequently, the very frequently, and where "slow_path()" is executed infrequently, the