Message ID | 20201214143852.16565-1-alx.manpages@gmail.com |
---|---|
State | New |
Headers | show |
Series | cacheflush.2: Document Architecture-specific variants | expand |
Ping On 12/14/20 3:38 PM, Alejandro Colomar wrote: > Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> > --- > > Hi Michael, > > Please apply this patch after > '[PATCH v5] cacheflush.2: Document __builtin___clear_cache() as a more > portable alternative'. > > Thanks, > > Alex > > 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 > +.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 (), >
Hi Alex On 12/14/20 3:38 PM, Alejandro Colomar wrote: > Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> > --- > > 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. > +.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
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@gmail.com> >> --- >> >> 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 > > >
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 +.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 (),
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com> --- Hi Michael, Please apply this patch after '[PATCH v5] cacheflush.2: Document __builtin___clear_cache() as a more portable alternative'. Thanks, Alex man2/cacheflush.2 | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+)