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: Florian Weimer <fweimer@redhat.com>, Jakub Wilk <jwilk@jwilk.net>,
	Alejandro Colomar <alx.manpages@gmail.com>,
	linux-man@vger.kernel.org, libc-alpha@sourceware.org
Subject: [PATCH 01/39] futex.2: Use syscall(SYS_...); for system calls without a wrapper
Date: Mon, 10 May 2021 19:55:10 +0200	[thread overview]
Message-ID: <20210510175546.28445-2-alx.manpages@gmail.com> (raw)
In-Reply-To: <20210510175546.28445-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 | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/man2/futex.2 b/man2/futex.2
index 389c25224..ada96c517 100644
--- a/man2/futex.2
+++ b/man2/futex.2
@@ -25,18 +25,22 @@ 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.
+glibc provides no wrapper for
+.BR futex (),
+necessitating the use of
+.BR syscall (2).
 .SH DESCRIPTION
 The
 .BR futex ()
@@ -1695,9 +1699,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.1


  reply	other threads:[~2021-05-10 17:56 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-10 17:55 [PATCH 00/39] man2: SYNOPSIS: Fix headers, use syscall(), and other fixes Alejandro Colomar
2021-05-10 17:55 ` Alejandro Colomar [this message]
2021-05-10 17:55 ` [PATCH 02/39] getdents.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-11  5:21   ` Michael Kerrisk (man-pages)
2021-05-10 17:55 ` [PATCH 03/39] ioctl_tty.2: Fix includes Alejandro Colomar
2021-05-10 17:55 ` [PATCH 04/39] ioctl_userfaultfd.2: SYNOPSIS: Add <linux/userfaultfd.h> Alejandro Colomar
2021-05-10 17:55 ` [PATCH 05/39] io_destroy.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 06/39] io_getevents.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 07/39] ioperm.2: Remove obvious comment Alejandro Colomar
2021-05-10 17:55 ` [PATCH 08/39] ioprio_set.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 09/39] ipc.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 10/39] ipc.2: Add needed include Alejandro Colomar
2021-05-10 17:55 ` [PATCH 11/39] kcmp.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 12/39] kcmp.2: tfix Alejandro Colomar
2021-05-10 17:55 ` [PATCH 13/39] kexec_load.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 14/39] scripts/bash_aliases: man_lsfunc(): Extract syscall name from syscall(SYS_...) Alejandro Colomar
2021-05-10 17:55 ` [PATCH 15/39] keyctl.2: Use syscall(SYS_...); for system calls without a glibc wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 16/39] link.2: ffix Alejandro Colomar
2021-05-10 17:55 ` [PATCH 17/39] llseek.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 18/39] lookup_dcookie.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 19/39] membarrier.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 20/39] mincore.2: Remove unused include Alejandro Colomar
2021-05-10 17:55 ` [PATCH 21/39] mknod.2: Remove unused includes Alejandro Colomar
2021-05-10 17:55 ` [PATCH 22/39] mmap2.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 23/39] modify_ldt.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 24/39] mq_getsetattr.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 25/39] alloc_hugepages.2, arch_prctl.2, capget.2, clone.2, delete_module.2, exit_group.2, get_robust_list.2, getunwind.2, init_module.2: Add note about the use of syscall(2) Alejandro Colomar
2021-05-10 17:55 ` [PATCH 26/39] open.2: Remove unused <sys/stat.h> Alejandro Colomar
2021-05-10 18:02   ` Alejandro Colomar (man-pages)
2021-05-11  5:15     ` Michael Kerrisk (man-pages)
2021-05-10 17:55 ` [PATCH 27/39] openat2.2: Use syscall(SYS_...); for system calls without a wrapper; fix includes too Alejandro Colomar
2021-05-10 17:55 ` [PATCH 28/39] perf_event_open.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 29/39] pidfd_getfd.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 30/39] pidfd_open.2: " Alejandro Colomar
2021-05-10 17:55 ` [PATCH 31/39] pidfd_send_signal.2: Use syscall(SYS_...); for system calls without a wrapper. Fix includes too Alejandro Colomar
2021-05-10 17:55 ` [PATCH 32/39] pipe.2: wfix Alejandro Colomar
2021-05-10 17:55 ` [PATCH 33/39] pivot_root.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 34/39] poll.2: Remove <signal.h> Alejandro Colomar
2021-05-10 17:55 ` [PATCH 35/39] process_madvise.2: Use syscall(SYS_...); for system calls without a wrapper. Fix includes too Alejandro Colomar
2021-05-10 17:55 ` [PATCH 36/39] quotactl.2: Better detail why <xfs/xqm.h> is included Alejandro Colomar
2021-05-10 17:55 ` [PATCH 37/39] readdir.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 17:55 ` [PATCH 38/39] readlink.2: ffix Alejandro Colomar
2021-05-10 17:55 ` [PATCH 39/39] reboot.2: Use syscall(SYS_...); for system calls without a wrapper Alejandro Colomar
2021-05-10 18:02   ` Alejandro Colomar (man-pages)
2021-05-11  5:19     ` Michael Kerrisk (man-pages)
2021-05-11  5:27 ` [PATCH 00/39] man2: SYNOPSIS: Fix headers, use syscall(), and other fixes 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=20210510175546.28445-2-alx.manpages@gmail.com \
    --to=alx.manpages@gmail.com \
    --cc=fweimer@redhat.com \
    --cc=jwilk@jwilk.net \
    --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).