public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
From: Alejandro Colomar <alx.manpages@gmail.com>
To: mtk.manpages@gmail.com
Cc: Alejandro Colomar <alx.manpages@gmail.com>,
	linux-man@vger.kernel.org, libc-alpha@sourceware.org
Subject: [PATCH v5 19/35] futex.2: Use syscall(SYS_...); for system calls without a wrapper
Date: Sun,  4 Apr 2021 13:58:32 +0200	[thread overview]
Message-ID: <20210404115847.78166-20-alx.manpages@gmail.com> (raw)
In-Reply-To: <20210403194026.102818-1-alx.manpages@gmail.com>

At the same time, document only headers that are required
for calling the function, or those that are specific to the
function:

<unistd.h> is required for the syscall() prototype.
<sys/syscall.h> is required for the syscall name SYS_xxx.
<linux/futex.h> is specific to this syscall.

However, uint32_t is generic enough that it shouldn't be
documented here.  The system_data_types(7) page already documents
it, and is more precise about it.  The same goes for timespec.

As a general rule a man[23] page should document the header that
includes the prototype, and all of the headers that define macros
that should be used with the call.  However, the information about
types should be restricted to system_data_types(7) (and that page
should probably be improved by adding types), except for types
that are very specific to the call.  Otherwise, we're duplicating
info and it's then harder to maintain, and probably outdated in
the future.

Signed-off-by: Alejandro Colomar <alx.manpages@gmail.com>
---
 man2/futex.2 | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/man2/futex.2 b/man2/futex.2
index 389c25224..7a19e50d2 100644
--- a/man2/futex.2
+++ b/man2/futex.2
@@ -25,18 +25,16 @@ futex \- fast user-space locking
 .SH SYNOPSIS
 .nf
 .PP
-.B #include <linux/futex.h>
-.B #include <stdint.h>
-.B #include <sys/time.h>
+.BR "#include <linux/futex.h>" "      /* Definition of " FUTEX_* " constants */"
+.BR "#include <sys/syscall.h>" "      /* Definition of " SYS_* " constants */"
+.B #include <unistd.h>
 .PP
-.BI "long futex(uint32_t *" uaddr ", int " futex_op ", uint32_t " val ,
-.BI "          const struct timespec *" timeout , \
+.BI "long syscall(SYS_futex, uint32_t *" uaddr ", int " futex_op \
+", uint32_t " val ,
+.BI "             const struct timespec *" timeout , \
 " \fR  /* or: \fBuint32_t \fIval2\fP */"
-.BI "          uint32_t *" uaddr2 ", uint32_t " val3 );
+.BI "             uint32_t *" uaddr2 ", uint32_t " val3 );
 .fi
-.PP
-.IR Note :
-There is no glibc wrapper for this system call; see NOTES.
 .SH DESCRIPTION
 The
 .BR futex ()
@@ -1695,9 +1693,6 @@ and a sixth argument was added in Linux 2.6.7.
 .SH CONFORMING TO
 This system call is Linux-specific.
 .SH NOTES
-Glibc does not provide a wrapper for this system call; call it using
-.BR syscall (2).
-.PP
 Several higher-level programming abstractions are implemented via futexes,
 including POSIX semaphores and
 various POSIX threads synchronization mechanisms
-- 
2.31.0


  parent reply	other threads:[~2021-04-04 11:59 UTC|newest]

Thread overview: 114+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-03 19:39 [PATCH v4 00/35] SYNOPSIS: Use syscall(SYS_...); and fix '#include's Alejandro Colomar
2021-04-03 19:39 ` [PATCH v4 01/35] system_data_types.7: Add 'struct sockaddr' Alejandro Colomar
2021-04-03 19:39 ` [PATCH v4 02/35] sockaddr.3: New link to system_data_types(7) Alejandro Colomar
2021-04-03 19:39 ` [PATCH v4 03/35] system_data_types.7: Add 'socklen_t' Alejandro Colomar
2021-04-03 19:39 ` [PATCH v4 04/35] socklen_t.3: New link to system_data_types(7) Alejandro Colomar
2021-04-03 19:39 ` [PATCH v4 05/35] access.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:39 ` [PATCH v4 06/35] add_key.2: Remove unused include Alejandro Colomar
2021-04-03 19:39 ` [PATCH v4 07/35] alloc_hugepages.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 08/35] arch_prctl.2: " Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 09/35] arch_prctl.2: SYNOPSIS: Remove unused includes Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 10/35] capget.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 11/35] clone.2: " Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 12/35] delete_module.2: Add missing include Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 13/35] dup.2: SYNOPSIS: Use consistent comments through pages Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 14/35] execveat.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 15/35] exit_group.2: Use 'noreturn' in prototypes Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 16/35] exit_group.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 17/35] fanotify_init.2: Add comment: why more than one include is needed Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 18/35] fcntl.2: Remove unused include Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 19/35] futex.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 20/35] futimesat.2: ffix Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 21/35] getdents.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 22/35] getpriority.2: Remove unused include Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 23/35] getrlimit.2, getrusage.2: " Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 24/35] getunwind.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 25/35] get_robust_list.2: " Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 26/35] delete_module.2: " Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 27/35] init_module.2: " Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 28/35] io_cancel.2: " Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 29/35] ioctl_fat.2: Make clear why is each header exactly needed Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 30/35] ioctl_fat.2: ffix Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 31/35] ioctl_ficlonerange.2: Make clear why is each header exactly needed Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 32/35] ioctl_fideduperange.2: Make clear why exactly is each header needed Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 33/35] ioctl_fslabel.2: ffix Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 34/35] ioctl_fslabel.2: Make clear why exactly is each header needed Alejandro Colomar
2021-04-03 19:40 ` [PATCH v4 35/35] ioctl_getfsmap.2: " Alejandro Colomar
2021-04-04 11:58 ` [PATCH v5 00/35] SYNOPSIS: Use syscall(SYS_...); and fix '#include's Alejandro Colomar
2021-04-05 11:49   ` Michael Kerrisk (man-pages)
2021-04-11 19:23     ` Alejandro Colomar (man-pages)
2021-04-11 19:30       ` Alejandro Colomar (man-pages)
2021-04-12  6:17     ` Florian Weimer
2021-04-12  6:39       ` Jakub Wilk
2021-04-12  9:09       ` Alejandro Colomar (man-pages)
2021-04-21  5:41         ` Florian Weimer
2021-04-24 15:46           ` Alejandro Colomar (man-pages)
2021-04-04 11:58 ` [PATCH v5 01/35] system_data_types.7: Add 'struct sockaddr' Alejandro Colomar
2021-04-05 10:40   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 02/35] sockaddr.3: New link to system_data_types(7) Alejandro Colomar
2021-04-04 11:58 ` [PATCH v5 03/35] system_data_types.7: Add 'socklen_t' Alejandro Colomar
2021-04-05 10:40   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 04/35] socklen_t.3: New link to system_data_types(7) Alejandro Colomar
2021-04-05 10:41   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 05/35] access.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-05 11:17   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 06/35] add_key.2: Remove unused include Alejandro Colomar
2021-04-05 10:51   ` Michael Kerrisk (man-pages)
2021-04-05 10:55   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 07/35] alloc_hugepages.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-05 11:22   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 08/35] arch_prctl.2: " Alejandro Colomar
2021-04-05 11:25   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 09/35] arch_prctl.2: SYNOPSIS: Remove unused includes Alejandro Colomar
2021-04-05 11:26   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 10/35] capget.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-05 11:29   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 11/35] clone.2: " Alejandro Colomar
2021-04-05 11:31   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 12/35] delete_module.2: Add missing include Alejandro Colomar
2021-04-05 10:48   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 13/35] dup.2: SYNOPSIS: Use consistent comments through pages Alejandro Colomar
2021-04-05 11:32   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 14/35] execveat.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-05 11:33   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 15/35] exit_group.2: Use 'noreturn' in prototypes Alejandro Colomar
2021-04-05 10:43   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 16/35] exit_group.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-05 11:36   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 17/35] fanotify_init.2: Add comment: why more than one include is needed Alejandro Colomar
2021-04-05 10:50   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 18/35] fcntl.2: Remove unused include Alejandro Colomar
2021-04-05 10:44   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` Alejandro Colomar [this message]
2021-04-04 11:58 ` [PATCH v5 20/35] futimesat.2: ffix Alejandro Colomar
2021-04-05 10:42   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 21/35] getdents.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-05 11:37   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 22/35] getpriority.2: Remove unused include Alejandro Colomar
2021-04-05 10:49   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 23/35] getrlimit.2, getrusage.2: " Alejandro Colomar
2021-04-05 10:48   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 24/35] getunwind.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-04-05 11:37   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 25/35] get_robust_list.2: " Alejandro Colomar
2021-04-05 11:39   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 26/35] delete_module.2: " Alejandro Colomar
2021-04-05 11:41   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 27/35] init_module.2: " Alejandro Colomar
2021-04-05 11:41   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 28/35] io_cancel.2: " Alejandro Colomar
2021-04-05 11:43   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 29/35] ioctl_fat.2: Make clear why is each header exactly needed Alejandro Colomar
2021-04-05 11:02   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 30/35] ioctl_fat.2: ffix Alejandro Colomar
2021-04-05 11:03   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 31/35] ioctl_ficlonerange.2: Make clear why is each header exactly needed Alejandro Colomar
2021-04-05 11:13   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 32/35] ioctl_fideduperange.2: Make clear why exactly is each header needed Alejandro Colomar
2021-04-05 11:16   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 33/35] ioctl_fslabel.2: ffix Alejandro Colomar
2021-04-05 11:10   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 34/35] ioctl_fslabel.2: Make clear why exactly is each header needed Alejandro Colomar
2021-04-05 11:04   ` Michael Kerrisk (man-pages)
2021-04-04 11:58 ` [PATCH v5 35/35] ioctl_getfsmap.2: " Alejandro Colomar
2021-04-05 11:10   ` Michael Kerrisk (man-pages)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210404115847.78166-20-alx.manpages@gmail.com \
    --to=alx.manpages@gmail.com \
    --cc=libc-alpha@sourceware.org \
    --cc=linux-man@vger.kernel.org \
    --cc=mtk.manpages@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).