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
.nf
.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
.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
.PP
.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
The
.BR membarrier ()
@ -322,9 +329,6 @@ Examples where
.BR membarrier ()
can be useful include implementations
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
Assuming a multithreaded application where "fast_path()" is executed
very frequently, and where "slow_path()" is executed infrequently, the