* [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
@ 2021-02-18 22:33 Alejandro Colomar
2021-02-19 12:25 ` Michael Kerrisk (man-pages)
0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Colomar @ 2021-02-18 22:33 UTC (permalink / raw)
To: mtk.manpages; +Cc: Alejandro Colomar, linux-man, libc-alpha, Ulrich Drepper
POSIX does NOT specify aio_suspend() to use 'restrict'.
However, glibc uses 'restrict'.
Users might be surprised by this! Let's use it here too!
......
.../glibc$ grep_glibc_prototype aio_suspend
rt/aio.h:167:
extern int aio_suspend (const struct aiocb *const __list[], int __nent,
const struct timespec *__restrict __timeout)
__nonnull ((1));
.../glibc$
Cc: libc-alpha@sourceware.org
Cc: Ulrich Drepper <drepper@redhat.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
---
Hello Michael,
I sent this patch separately because it's a bit different,
and would like someone from glibc to check it.
I CCd Ulrich, who added 'restrict' to the function in glibc.
Thanks,
Alex
---
man3/aio_suspend.3 | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
index 76a05f48e..dcae51e1c 100644
--- a/man3/aio_suspend.3
+++ b/man3/aio_suspend.3
@@ -31,7 +31,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
.B "#include <aio.h>"
.PP
.BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
-.BI " int " nitems ", const struct timespec *" timeout );
+.BI " int " nitems \
+", const struct timespec *restrict " timeout );
.PP
Link with \fI\-lrt\fP.
.fi
--
2.30.1.721.g45526154a5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
2021-02-18 22:33 [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes Alejandro Colomar
@ 2021-02-19 12:25 ` Michael Kerrisk (man-pages)
2021-02-19 12:30 ` Alejandro Colomar (man-pages)
0 siblings, 1 reply; 5+ messages in thread
From: Michael Kerrisk (man-pages) @ 2021-02-19 12:25 UTC (permalink / raw)
To: Alejandro Colomar; +Cc: mtk.manpages, linux-man, libc-alpha, Ulrich Drepper
Hello Alex,
On 2/18/21 11:33 PM, Alejandro Colomar wrote:
> POSIX does NOT specify aio_suspend() to use 'restrict'.
> However, glibc uses 'restrict'.
> Users might be surprised by this! Let's use it here too!
Thanks for spotting this. Perhaps if we apply this,
the patch should include something in CONFORMING TO to
note that POSIX doesn't specify 'restrict'. What do
you think?
Cheers,
Michael
> ......
>
> .../glibc$ grep_glibc_prototype aio_suspend
> rt/aio.h:167:
> extern int aio_suspend (const struct aiocb *const __list[], int __nent,
> const struct timespec *__restrict __timeout)
> __nonnull ((1));
> .../glibc$
>
> Cc: libc-alpha@sourceware.org
> Cc: Ulrich Drepper <drepper@redhat.com>
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> ---
>
> Hello Michael,
>
> I sent this patch separately because it's a bit different,
> and would like someone from glibc to check it.
> I CCd Ulrich, who added 'restrict' to the function in glibc.
>
> Thanks,
>
> Alex
>
> ---
> man3/aio_suspend.3 | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
> index 76a05f48e..dcae51e1c 100644
> --- a/man3/aio_suspend.3
> +++ b/man3/aio_suspend.3
> @@ -31,7 +31,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
> .B "#include <aio.h>"
> .PP
> .BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
> -.BI " int " nitems ", const struct timespec *" timeout );
> +.BI " int " nitems \
> +", const struct timespec *restrict " timeout );
> .PP
> Link with \fI\-lrt\fP.
> .fi
>
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
2021-02-19 12:25 ` Michael Kerrisk (man-pages)
@ 2021-02-19 12:30 ` Alejandro Colomar (man-pages)
2021-02-19 13:03 ` [PATCH v2] " Alejandro Colomar
0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Colomar (man-pages) @ 2021-02-19 12:30 UTC (permalink / raw)
To: Michael Kerrisk (man-pages); +Cc: linux-man, libc-alpha, Ulrich Drepper
On 2/19/21 1:25 PM, Michael Kerrisk (man-pages) wrote:
> Hello Alex,
>
> On 2/18/21 11:33 PM, Alejandro Colomar wrote:
>> POSIX does NOT specify aio_suspend() to use 'restrict'.
>> However, glibc uses 'restrict'.
>> Users might be surprised by this! Let's use it here too!
>
> Thanks for spotting this. Perhaps if we apply this,
> the patch should include something in CONFORMING TO to
> note that POSIX doesn't specify 'restrict'. What do
> you think?
Hi Michael,
I was about to ask exactly that in the email, but I forgot :)
Yes.
Cheers,
Alex
>
> Cheers,
>
> Michael
>
>> ......
>>
>> .../glibc$ grep_glibc_prototype aio_suspend
>> rt/aio.h:167:
>> extern int aio_suspend (const struct aiocb *const __list[], int __nent,
>> const struct timespec *__restrict __timeout)
>> __nonnull ((1));
>> .../glibc$
>>
>> Cc: libc-alpha@sourceware.org
>> Cc: Ulrich Drepper <drepper@redhat.com>
>> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
>> ---
>>
>> Hello Michael,
>>
>> I sent this patch separately because it's a bit different,
>> and would like someone from glibc to check it.
>> I CCd Ulrich, who added 'restrict' to the function in glibc.
>>
>> Thanks,
>>
>> Alex
>>
>> ---
>> man3/aio_suspend.3 | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
>> index 76a05f48e..dcae51e1c 100644
>> --- a/man3/aio_suspend.3
>> +++ b/man3/aio_suspend.3
>> @@ -31,7 +31,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
>> .B "#include <aio.h>"
>> .PP
>> .BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
>> -.BI " int " nitems ", const struct timespec *" timeout );
>> +.BI " int " nitems \
>> +", const struct timespec *restrict " timeout );
>> .PP
>> Link with \fI\-lrt\fP.
>> .fi
>>
>
>
--
Alejandro Colomar
Linux man-pages comaintainer; https://www.kernel.org/doc/man-pages/
http://www.alejandro-colomar.es/
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH v2] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
2021-02-19 12:30 ` Alejandro Colomar (man-pages)
@ 2021-02-19 13:03 ` Alejandro Colomar
2021-02-20 14:36 ` Michael Kerrisk (man-pages)
0 siblings, 1 reply; 5+ messages in thread
From: Alejandro Colomar @ 2021-02-19 13:03 UTC (permalink / raw)
To: mtk.manpages; +Cc: Alejandro Colomar, linux-man, libc-alpha, Ulrich Drepper
POSIX does NOT specify aio_suspend() to use 'restrict'.
However, glibc uses 'restrict'.
Users might be surprised by this! Let's use it here too!
......
.../glibc$ grep_glibc_prototype aio_suspend
rt/aio.h:167:
extern int aio_suspend (const struct aiocb *const __list[], int __nent,
const struct timespec *__restrict __timeout)
__nonnull ((1));
.../glibc$
Cc: libc-alpha@sourceware.org
Cc: Ulrich Drepper <drepper@redhat.com>
Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
---
v2:
- wsfix + srcfix: Avoid breaking the line in the prototype
- Note the difference between POSIX and glibc in CONFORMING TO.
---
man3/aio_suspend.3 | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
index 76a05f48e..e0355a449 100644
--- a/man3/aio_suspend.3
+++ b/man3/aio_suspend.3
@@ -30,8 +30,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
.PP
.B "#include <aio.h>"
.PP
-.BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
-.BI " int " nitems ", const struct timespec *" timeout );
+.BI "int aio_suspend(const struct aiocb *const " aiocb_list "[], int " nitems ,
+.BI " const struct timespec *restrict " timeout );
.PP
Link with \fI\-lrt\fP.
.fi
@@ -122,6 +122,10 @@ T} Thread safety MT-Safe
.sp 1
.SH CONFORMING TO
POSIX.1-2001, POSIX.1-2008.
+.PP
+POSIX doesn't specify the parameters to be
+.IR restrict ;
+that is specific to glibc.
.SH NOTES
One can achieve polling by using a non-NULL
.I timeout
--
2.30.1.721.g45526154a5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes
2021-02-19 13:03 ` [PATCH v2] " Alejandro Colomar
@ 2021-02-20 14:36 ` Michael Kerrisk (man-pages)
0 siblings, 0 replies; 5+ messages in thread
From: Michael Kerrisk (man-pages) @ 2021-02-20 14:36 UTC (permalink / raw)
To: Alejandro Colomar; +Cc: mtk.manpages, linux-man, libc-alpha, Ulrich Drepper
On 2/19/21 2:03 PM, Alejandro Colomar wrote:
> POSIX does NOT specify aio_suspend() to use 'restrict'.
> However, glibc uses 'restrict'.
> Users might be surprised by this! Let's use it here too!
Hi Alex.
Patch applied. Thanks!
Cheers,
Michael
> ......
>
> .../glibc$ grep_glibc_prototype aio_suspend
> rt/aio.h:167:
> extern int aio_suspend (const struct aiocb *const __list[], int __nent,
> const struct timespec *__restrict __timeout)
> __nonnull ((1));
> .../glibc$
>
> Cc: libc-alpha@sourceware.org
> Cc: Ulrich Drepper <drepper@redhat.com>
> Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
> ---
>
> v2:
> - wsfix + srcfix: Avoid breaking the line in the prototype
> - Note the difference between POSIX and glibc in CONFORMING TO.
>
> ---
> man3/aio_suspend.3 | 8 ++++++--
> 1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/man3/aio_suspend.3 b/man3/aio_suspend.3
> index 76a05f48e..e0355a449 100644
> --- a/man3/aio_suspend.3
> +++ b/man3/aio_suspend.3
> @@ -30,8 +30,8 @@ aio_suspend \- wait for asynchronous I/O operation or timeout
> .PP
> .B "#include <aio.h>"
> .PP
> -.BI "int aio_suspend(const struct aiocb * const " aiocb_list [],
> -.BI " int " nitems ", const struct timespec *" timeout );
> +.BI "int aio_suspend(const struct aiocb *const " aiocb_list "[], int " nitems ,
> +.BI " const struct timespec *restrict " timeout );
> .PP
> Link with \fI\-lrt\fP.
> .fi
> @@ -122,6 +122,10 @@ T} Thread safety MT-Safe
> .sp 1
> .SH CONFORMING TO
> POSIX.1-2001, POSIX.1-2008.
> +.PP
> +POSIX doesn't specify the parameters to be
> +.IR restrict ;
> +that is specific to glibc.
> .SH NOTES
> One can achieve polling by using a non-NULL
> .I timeout
>
--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
Linux/UNIX System Programming Training: http://man7.org/training/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-02-20 14:37 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-18 22:33 [PATCH] aio_suspend.3: SYNOPSIS: Use 'restrict' in prototypes Alejandro Colomar
2021-02-19 12:25 ` Michael Kerrisk (man-pages)
2021-02-19 12:30 ` Alejandro Colomar (man-pages)
2021-02-19 13:03 ` [PATCH v2] " Alejandro Colomar
2021-02-20 14:36 ` Michael Kerrisk (man-pages)
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.