aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <alx.manpages@gmail.com>2020-12-14 15:38:53 +0100
committerMichael Kerrisk <mtk.manpages@gmail.com>2020-12-20 21:49:49 +0100
commit08811c1418e4fce2b8e9693916e9ed10339ea897 (patch)
tree0f42013ddacafec88a992f6a4b756f3b58888fcd
parentd7e7ab0e3471b92c824e270a1361c84a03ab9f69 (diff)
downloadman-pages-08811c1418e4fce2b8e9693916e9ed10339ea897.tar.gz
cacheflush.2: Document Architecture-specific variants
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> Signed-off-by: Michael Kerrisk <mtk.manpages@gmail.com>
-rw-r--r--man2/cacheflush.242
1 files changed, 42 insertions, 0 deletions
diff --git a/man2/cacheflush.2 b/man2/cacheflush.2
index 0701017e78..439ef92ef1 100644
--- a/man2/cacheflush.2
+++ b/man2/cacheflush.2
@@ -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 (),