On 12/20/20 9:54 PM, Michael Kerrisk (man-pages) wrote: > Hi Alex > > On 12/14/20 3:38 PM, Alejandro Colomar wrote: >> Signed-off-by: Alejandro Colomar <alx.manpages@xxxxxxxxx> >> --- >> >> Hi Michael, >> >> Please apply this patch after >> '[PATCH v5] cacheflush.2: Document __builtin___clear_cache() as a more >> portable alternative'. > > Thanks. Applied. > >> man2/cacheflush.2 | 42 ++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 42 insertions(+) >> >> diff --git a/man2/cacheflush.2 b/man2/cacheflush.2 >> index fc35f1a0b..0761b429a 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 > > I made the formatting rather: > > [[ > .TP > M68K: > .nf > .BI "int cacheflush(unsigned long " addr ", int " scope ", int " cache , > .BI " unsigned long " len ); > .fi > ]] > > That's for consistency wqith the SYNOPSIS sections, where .EX/.EE > isn't used. Ahh. Right! Thanks, Alex > >> +.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 (), > > > Cheers, > > Michael > > > -- Alejandro Colomar Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/ http://www.alejandro-colomar.es/