From patchwork Sat Mar 13 19:25:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alejandro Colomar X-Patchwork-Id: 42527 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id C4474388CC17; Sat, 13 Mar 2021 19:26:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C4474388CC17 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1615663562; bh=ELdom3QA9KtDMvn7b4rnXhEozrUJ/M/stF+XSkKHLwg=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=Me2FJWUxgWJ+AtCl/tFHIggXoKwOh6AwuH8BcrK8RLIhqlIcE7yIml27GSGq/J8+q IGDUtEzQBIkbn+fY1WIEkbvY6IVlp2/sK9wI9gas2753WfSKrtKFEcRGqyrViKu2// G3dCZtRyenC1rnoRNSGhxTFW56uMyHCHlMxgiY9I= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id 0A528388C00F for ; Sat, 13 Mar 2021 19:25:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 0A528388C00F Received: by mail-wm1-x336.google.com with SMTP id f22-20020a7bc8d60000b029010c024a1407so17795131wml.2 for ; Sat, 13 Mar 2021 11:25:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ELdom3QA9KtDMvn7b4rnXhEozrUJ/M/stF+XSkKHLwg=; b=s4a31X5aOs+WHSSLTSxty9tg1WnuqdHUVKDnU9aJEu1ZS7plEYeSIYvHoPRAAiqAu/ t25BdLr/sDXCvjRsLhq9yO0LF18ELaR4vzyVhCaSVwAohxYega5UpcMxiRhRsX9YVddN 8PSC9VDydsnoZNu0bEEO0j1ESFP61ekIcIi2wZ6JWRmrvBVIrpBtL/s9vt+CdnPQBn8j VNbpCNSB/8LxWhiExlJTDFAo0HFvzrYT4XPekZ1WMtxv42YkQBtEUmeB3kY4Ozeu71RZ G5cNRUjiPr7ZFOKgyDQ/FNkNP8AcWe8aBYPiU1NgyMep00/rnuJLqK/V35hpSaaUnL1c 4LHQ== X-Gm-Message-State: AOAM532DHuSW0ZnM45VcSpU0nSbTaR3YJm80q1H13Gl8esQGLPrI6OuY VPf492LT/Gljl7GaLJTqiyBqSjYqYacqpA== X-Google-Smtp-Source: ABdhPJwyTmDL/rq88PSF7k7CcZENxH2pPePg+uuA365qwWo7crkb4mTyxer3LC5CdTBneL6n3MF/hg== X-Received: by 2002:a7b:cb90:: with SMTP id m16mr18819776wmi.162.1615663558205; Sat, 13 Mar 2021 11:25:58 -0800 (PST) Received: from localhost.localdomain ([170.253.51.130]) by smtp.googlemail.com with ESMTPSA id j136sm7670964wmj.35.2021.03.13.11.25.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Mar 2021 11:25:57 -0800 (PST) To: mtk.manpages@gmail.com Subject: [RFC v3 11/17] futex.2: Use syscall(SYS_...); for system calls without a wrapper Date: Sat, 13 Mar 2021 20:25:21 +0100 Message-Id: <20210313192526.350200-12-alx.manpages@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20210214133907.157320-1-alx.manpages@gmail.com> References: <20210214133907.157320-1-alx.manpages@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alejandro Colomar via Libc-alpha From: Alejandro Colomar Reply-To: Alejandro Colomar Cc: Alejandro Colomar , linux-man@vger.kernel.org, libc-alpha@sourceware.org, linux-kernel@vger.kernel.org, Florian Weimer Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" At the same time, document only headers that are required for calling the function, or those that are specific to the function: is required for the syscall() prototype. is required for the syscall name SYS_xxx. 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 --- man2/futex.2 | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/man2/futex.2 b/man2/futex.2 index e698178d2..a2486628b 100644 --- a/man2/futex.2 +++ b/man2/futex.2 @@ -25,18 +25,16 @@ futex \- fast user-space locking .SH SYNOPSIS .nf .PP -.B #include -.B #include -.B #include +.BR "#include " " /* Definition of " FUTEX_* " constants */" +.BR "#include " " /* Definition of " SYS_* " constants */" +.B #include .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