cacheflush.2: Document Architecture-specific variants

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 2020-12-14 15:38:53 +01:00 committed by Michael Kerrisk
parent d7e7ab0e34
commit 08811c1418
1 changed files with 42 additions and 0 deletions

View File

@ -31,6 +31,10 @@ cacheflush \- flush contents of instruction and/or data cache
.PP
.BI "int cacheflush(char *" addr ", int "nbytes ", int "cache );
.fi
.PP
.IR Note :
On some architectures,
there is no glibc wrapper for this system call; see NOTES.
.SH DESCRIPTION
.BR cacheflush ()
flushes the contents of the indicated cache(s) for the
@ -87,6 +91,44 @@ but nowadays, Linux provides a
.BR cacheflush ()
system call on some other architectures, but with different arguments.
.SH NOTES
.SS Architecture-specific variants
Glibc provides a wrapper for this system call,
with the prototype shown in SYNOPSIS,
for the following architectures:
ARC, CSKY, MIPS, and NIOS2.
.PP
On some other architectures,
Linux provides this system call, with different arguments:
.TP
M68K:
.PP
.in +4n
.EX
.BI "int cacheflush(unsigned long " addr ", int " scope ", int " cache ,
.BI " unsigned long " len );
.EE
.in
.TP
SH:
.PP
.in +4n
.EX
.BI "int cacheflush(unsigned long " addr ", unsigned long " len ", int " op );
.EE
.in
.TP
NDS32:
.PP
.in +4n
.EX
.BI "int cacheflush(unsigned int " start ", unsigned int " end ", int " cache );
.EE
.in
.PP
On the above architectures,
glibc does not provide a wrapper for this system call; call it using
.BR syscall (2).
.SS GCC alternative
Unless you need the finer grained control that this system call provides,
you probably want to use the GCC built-in function
.BR __builtin___clear_cache (),