From patchwork Tue Dec 7 11:19:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alejandro Colomar X-Patchwork-Id: 48574 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 3A27C385800A for ; Tue, 7 Dec 2021 11:21:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3A27C385800A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1638876077; bh=krwJSU/0gWfeK2F0DfjZQFHrEGPg6obFxKxgfXg8Z1Q=; h=To:Subject:Date:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:Cc:From; b=uB+L69B9FlUAAIhyuRMq9d1A+ZqTdvlRm2e3nXvrciH+nmkFKdSiK3R7/nOjaZVT/ DIAqnOQro3aSRwqCjITlQbpC91GN87hvxKzIOdqBV7ck+KsaSSVldvhe0o9Zi2hK/V os9hrQKvE3YlLcyw44pAEPbQ1AW2mVcqbxjh5mM8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by sourceware.org (Postfix) with ESMTPS id C76BE3858C60 for ; Tue, 7 Dec 2021 11:20:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C76BE3858C60 Received: by mail-wm1-x335.google.com with SMTP id r9-20020a7bc089000000b00332f4abf43fso1440252wmh.0 for ; Tue, 07 Dec 2021 03:20:55 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=krwJSU/0gWfeK2F0DfjZQFHrEGPg6obFxKxgfXg8Z1Q=; b=qS+hCoL9EnNwZtkZf27453A7JyNGf0/6BDrfTEKtKmun3MGMwZhd4WOCByBb5V0aXp q8aQdSC9Hm2zl3fGdIOT2iIiv7pi7+po0oZy7uUjhsFn6sCsDtGl1osDLmRDtXnEwq6t SM+8it7MArsKauiNaJ9vMtmvqQiaBKrGPkEcEfbmzVSsf9G+tCMV7YCPRQ75iSgLWaxS x2BDnEcZG/3g3ePikuFxdtl6whAusLVoiZJlE9efQmAA+5Hxynrin35LuKqR/gM12DyN eILwknAr7gh3oTZs1vRhRYoD65JQ4yE2U2bV8U316FV4Yv8fVm0c5XILggL4Yk64XWi6 MryA== X-Gm-Message-State: AOAM531B3vEY6+NF7viUyrhEduZcMaCt+/2MMCon3zX5uG/+1p/SEMRf 2TKbzyZNUvjhUQAxueMCCQdcoFOx4VQ= X-Google-Smtp-Source: ABdhPJwohD/cQaoB4aZ126wQOUBDVhlHdO1KJox7lUgr7cptQHFeHZLyiEaie5MCtpDYjIOdpsTeJQ== X-Received: by 2002:a7b:c8d5:: with SMTP id f21mr6190660wml.146.1638876054974; Tue, 07 Dec 2021 03:20:54 -0800 (PST) Received: from sqli.sqli.com ([195.53.121.100]) by smtp.googlemail.com with ESMTPSA id d15sm18861564wri.50.2021.12.07.03.20.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Dec 2021 03:20:54 -0800 (PST) To: libc-alpha@sourceware.org Subject: [PATCH] sys/types.h: Define new types: [s]nseconds_t Date: Tue, 7 Dec 2021 12:19:58 +0100 Message-Id: <20211207111957.8087-1-alx.manpages@gmail.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-Spam-Status: No, score=-11.7 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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 , Stefan Puiu , Michael Kerrisk , =?utf-8?b?0L3QsNCx?= , Jakub Wilk Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" For symmetry with the existing [s]useconds_t types. The timespec(3) structure uses long for tv_nsec, except if __x86_64__ && __ILP32__, in which case it uses long long. Let's define a stable type that can be relied upon by users, for example for creating pointers. Cc: наб Cc: Jakub Wilk Cc: Zack Weinberg Cc: Stefan Puiu Cc: Michael Kerrisk (man-pages) Signed-off-by: Alejandro Colomar --- posix/sys/types.h | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/posix/sys/types.h b/posix/sys/types.h index 477a45f4af..147e2d3500 100644 --- a/posix/sys/types.h +++ b/posix/sys/types.h @@ -140,6 +140,14 @@ typedef __suseconds_t suseconds_t; # endif #endif +#if defined __x86_64__ && defined __ILP32__ +typedef unsigned long long nseconds_t; +typedef long long snseconds_t; +#else +typedef unsigned long nseconds_t; +typedef long snseconds_t; +#endif + #define __need_size_t #include From patchwork Tue Dec 7 22:05:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alejandro Colomar X-Patchwork-Id: 48613 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 730053857C45 for ; Tue, 7 Dec 2021 22:06:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 730053857C45 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1638914801; bh=Ln4PI+fsm7p+4bv4WNHqlTcZcXuk/cjEfeOt2ysiUN4=; 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=DlXjhhIQjY3VJRlStuWLBmT5gpbFCl42G343hADUfHCKMpQCrZW4fKfOsQwoJstpq Lqh18GDOk41LpVbw5ba9Ky3zHo3NTYZ1Io+tUMDszKm2dF5Ibq7EVnxxnddv7qUNbe ANos1PPLvf/BVKyvK626r8FRNFU1kuA0vs/9xikQ= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-wr1-x432.google.com (mail-wr1-x432.google.com [IPv6:2a00:1450:4864:20::432]) by sourceware.org (Postfix) with ESMTPS id B81C13858014 for ; Tue, 7 Dec 2021 22:06:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B81C13858014 Received: by mail-wr1-x432.google.com with SMTP id a9so585332wrr.8 for ; Tue, 07 Dec 2021 14:06:19 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ln4PI+fsm7p+4bv4WNHqlTcZcXuk/cjEfeOt2ysiUN4=; b=67BTxvS4EQaDUfzEIL8Kd5dIcz6ue8+pqsd8jeAmRbIrLfnzMPAbUPJYHInCHDyqUG kHzsjL5Pp8Lz29Qg4ux5DWBXfp/l3svwijEPoeFYJEJCdOZ9Z2DA/g7UWy5tNptrKiW9 K8EDCGlIiY7WmxwCRPAjaHWtEy1VhFD7689yEPdZMan5Sfsm/t6EyKHs+SMpPIgiDnJc oCuRXkun+oadPmBMg018EL91iyORnXipJ0J75kh2McW9shf36KooIhDoY5DJ0b1vFDX+ qtCgy8/jKPTj0HA5N12yuQjKMW5eDQsVsewVOqeec17ttB5EKS/nhd+fgvetqYcKscVH 59hA== X-Gm-Message-State: AOAM530sTpWT6u9TjecoYkqx8a19AT3nvG35YXNT2JVwduX+JP7ZJZoI WOf7GyTEYOQpgHlJLDSGO8H3bZQFKME= X-Google-Smtp-Source: ABdhPJyXhJSo9l89Lfaxwn0TV+YEnj4DvGphmPwFSzV/qs3bo2Cs27r17hDZMuyd12uH5VP6RkxHXw== X-Received: by 2002:adf:dc8c:: with SMTP id r12mr55778792wrj.510.1638914778939; Tue, 07 Dec 2021 14:06:18 -0800 (PST) Received: from sqli.sqli.com ([195.53.121.100]) by smtp.googlemail.com with ESMTPSA id o4sm1240247wry.80.2021.12.07.14.06.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Dec 2021 14:06:18 -0800 (PST) To: libc-alpha@sourceware.org Subject: [RFC v2 2/2] sys/types.h: struct timespec: Use snseconds_t for tv_nsec Date: Tue, 7 Dec 2021 23:05:36 +0100 Message-Id: <20211207220535.19228-1-alx.manpages@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20211207111957.8087-1-alx.manpages@gmail.com> References: <20211207111957.8087-1-alx.manpages@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.7 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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 , Rich Felker , Stefan Puiu , Michael Kerrisk , =?utf-8?b?0L3QsNCx?= , Jakub Wilk , Joseph Myers Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" The timespec(3) structure uses long for tv_nsec, except if __x86_64__ && __ILP32__, in which case it uses long long. Let's use a stable type that can be relied upon by users, for example for creating pointers. Link: linux-man Link: glibc Cc: наб Cc: Jakub Wilk Cc: Zack Weinberg Cc: Stefan Puiu Cc: Michael Kerrisk (man-pages) Cc: H.J. Lu Cc: Joseph Myers Cc: Rich Felker Signed-off-by: Alejandro Colomar --- time/bits/types/struct_timespec.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/time/bits/types/struct_timespec.h b/time/bits/types/struct_timespec.h index 489e81136d..33dda4db2a 100644 --- a/time/bits/types/struct_timespec.h +++ b/time/bits/types/struct_timespec.h @@ -18,14 +18,14 @@ struct timespec #if __WORDSIZE == 64 \ || (defined __SYSCALL_WORDSIZE && __SYSCALL_WORDSIZE == 64) \ || (__TIMESIZE == 32 && !defined __USE_TIME_BITS64) - __syscall_slong_t tv_nsec; /* Nanoseconds. */ + __snseconds_t tv_nsec; /* Nanoseconds. */ #else # if __BYTE_ORDER == __BIG_ENDIAN - int: 32; /* Padding. */ - long int tv_nsec; /* Nanoseconds. */ + int: 32; /* Padding. */ + __snseconds_t tv_nsec; /* Nanoseconds. */ # else - long int tv_nsec; /* Nanoseconds. */ - int: 32; /* Padding. */ + __snseconds_t tv_nsec; /* Nanoseconds. */ + int: 32; /* Padding. */ # endif #endif }; From patchwork Wed Dec 8 14:48:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alejandro Colomar X-Patchwork-Id: 48632 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 A0F62385841F for ; Wed, 8 Dec 2021 14:51:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A0F62385841F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1638975099; bh=ob/Z2x9bJNm80GLo9Z3R4OVJPw2nJ58yKvUGmgvhrbk=; 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=C/9kNswsdFugEO2IAPGEQmBFxF/zmg2XXeLtl0LskoyjJyIwXhHuYrYxRRYLbxSVA paYI9H2LQKeHYKkvD7nukyCGh7l6CSUbUMcEvUyg4FQ0llMCxKT9KZXWHmWJ4cYY6u C2wz0RQtu/bjKCQ0zBgl9DkL79mylwDUgv0lwsO4= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 15F6A3858D3C for ; Wed, 8 Dec 2021 14:51:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 15F6A3858D3C Received: by mail-wm1-x330.google.com with SMTP id p18so1944369wmq.5 for ; Wed, 08 Dec 2021 06:51:18 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ob/Z2x9bJNm80GLo9Z3R4OVJPw2nJ58yKvUGmgvhrbk=; b=H+FQS5FB678Uq41UT5fIzL+HOqsl6KhyA3yfIJjG+mu/tw2bqLLcNb1e6vyOtpTocp 0KJyRiQjSE+zUeeUw4pJBNQO6TLrZt+DyqYGzXICbmtwo3OzU6e3PzVivjd3987FP+DV hdIK0B9LsQeGGN5EM+XPfLknQ4FzyxXLtGE+g8viSU7SSmdbnOOQU/y3V1EcLzP1oLPz Lr7pkSmAqL76yT1pm0EbjVlDlQSJOhgRorKlTE65LOJvGyghUXiT0pZSznKlG1eUgs8X 8UB2/jGvFtgexAxNDAHMtBs+F8buSaWGmBXfMoLQhShm6ryNHI7/v2RXcMKToXLgy9YV M1Ag== X-Gm-Message-State: AOAM5305MB7iA6hPAAUGTwjvCK+v79OrkbMx3fKS7siDTRfEd1ghLPEt K6203Ec+OvNk4czIWll4Yqd9lODDkr8= X-Google-Smtp-Source: ABdhPJyp8SlNo9mVxV6yywODlAC4rJVbBXZmDLOXYY3rxr/AF2hSw5nVp10x2JxJn8HFAY06BS5IZQ== X-Received: by 2002:a05:600c:500b:: with SMTP id n11mr16751558wmr.38.1638975077194; Wed, 08 Dec 2021 06:51:17 -0800 (PST) Received: from sqli.sqli.com ([195.53.121.100]) by smtp.googlemail.com with ESMTPSA id a9sm2990660wrt.66.2021.12.08.06.51.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 08 Dec 2021 06:51:16 -0800 (PST) To: libc-alpha@sourceware.org Subject: [RFC v3 3/3] sys/types.h: Make snseconds_t user visible Date: Wed, 8 Dec 2021 15:48:00 +0100 Message-Id: <20211208144757.37641-3-alx.manpages@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20211207111957.8087-1-alx.manpages@gmail.com> References: <20211207111957.8087-1-alx.manpages@gmail.com> MIME-Version: 1.0 X-Spam-Status: No, score=-11.7 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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 , Rich Felker , Stefan Puiu , Andreas Schwab , Michael Kerrisk , =?utf-8?b?0L3QsNCx?= , Jakub Wilk , Joseph Myers Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Use a type that can be relied upon by users, for example for creating pointers. It is backwards compatible, as it is defined to be long whenever it can, and it makes the underlying type opaque, since the user never had a need to know what it is. First of all, this simplifies the implementation, allowing a different underlying type in kernel and in user space. The user only needs to know that it can hold [0, 999'999'999], and it's a signed type. To print it, casting to long or to intmax_t (or even int when it's 32-bit) should be safe. Using long was too specific of a contract with programmers. Using snseconds_t in user code adds extra readability to the code, since long is both meaningless and also unnecessarily explicit. Link: linux-man Link: glibc Cc: наб Cc: Jakub Wilk Cc: Zack Weinberg Cc: Stefan Puiu Cc: Michael Kerrisk (man-pages) Cc: H.J. Lu Cc: Joseph Myers Cc: Rich Felker Cc: Andreas Schwab Cc: Paul Eggert Signed-off-by: Alejandro Colomar --- posix/sys/types.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/posix/sys/types.h b/posix/sys/types.h index 477a45f4af..dae71f92b7 100644 --- a/posix/sys/types.h +++ b/posix/sys/types.h @@ -140,6 +140,11 @@ typedef __suseconds_t suseconds_t; # endif #endif +#ifndef __snseconds_t_defined +typedef __snseconds_t snseconds_t; +# define __snseconds_t_defined +#endif + #define __need_size_t #include