From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.1 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 3643 invoked from network); 20 Jun 2023 14:38:15 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 20 Jun 2023 14:38:15 -0000 Received: (qmail 21686 invoked by uid 550); 20 Jun 2023 14:37:44 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-ID: Reply-To: musl@lists.openwall.com Received: (qmail 21554 invoked from network); 20 Jun 2023 14:37:43 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687271851; x=1689863851; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=I49SwXmi77ljknSX6RlFdH02kK4UtghIA5l0Ln0SC7w=; b=Bq8GjXkSE9J+3BYCb3hGjUpCN+1FsmxMNUCR/dKL24JKxjAlTox3KYubJ7faO4U39Z MrwoLXL1oCSydfnGsvtTn2UYIkzbjOSxVLbT0awn4IuSYp8V5b/Tlvg1HQmW/68bjiKy FfYEQA04lD4dIAyWCsNuBeCLJHFyD0m7bC5b9i18Jqwqf16v2Wr4eXXN+lN9dZb8Mm2d zFsAbMZA4Z/8ZCV+/sb7rmqiqeGdIkOy7Jj/KRfW1bILk67eWZ/pnPm8wAdJ5qyUo3xK 9vCWkijGf2teZyFj9Bk7wMqzOVYb2ZbSZR8B2X05zrLyRqKAi8unOfhZowgBYJe5Ocoy hYdw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687271851; x=1689863851; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=I49SwXmi77ljknSX6RlFdH02kK4UtghIA5l0Ln0SC7w=; b=M5iBo8/mCVH1j+WT0Q/ereSheGCPeqmHMhaz0HnEIPYCjnAr4tkadaNyYYCR4Vrn1u ZKOhgjVPwBGlFbFmaFS5+Fza6UuI52gj0zXxPrCmm5bXtIIcWKy4+WyDE3a/21bQ+nVB JrTq6QOhYeB/3kBmiHUPSOOuiJPmBZzNJmGlxTBXpy/KwUic/Ol8rewymsjxcCAjkMJF VfO5MKmSTk39WLCve94kbs68BHIbUTh2IDb4vfhhV9ZnMYH6OYy0tDLsLXWJ5RzBkZ0K RaFT5G0flhzXbtQAaHHlOscqnvo1o7HDtaM/u24onkUemXl8C7NH0pyC42MIka2OT4Uj ASEw== X-Gm-Message-State: AC+VfDyhGbk2h2ZSwBt8ZGibnrokkHmBT+cmUjbSd9O6qR46wUNaZFiL t3iQQitWZ4wCZ/Ye7yUopu0= X-Google-Smtp-Source: ACHHUZ78rR74B6hRWt7/QNE+TrSFhP3uUx0SiRo7mke6r7e6V0UngqRsEDr5CNt0xNJNZDm+1+ERtw== X-Received: by 2002:a17:90a:5105:b0:25e:8585:a9ab with SMTP id t5-20020a17090a510500b0025e8585a9abmr6825228pjh.29.1687271851167; Tue, 20 Jun 2023 07:37:31 -0700 (PDT) From: Yonggang Luo To: Jens Gustedt , enh , musl@lists.openwall.com Cc: Yonggang Luo Date: Tue, 20 Jun 2023 22:37:02 +0800 Message-Id: <20230620143703.1415-5-luoyonggang@gmail.com> X-Mailer: git-send-email 2.39.0.windows.1 In-Reply-To: <20230620143703.1415-1-luoyonggang@gmail.com> References: <20230620143703.1415-1-luoyonggang@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [musl] [PATCH v3 4/5] c23: Implement newly base for timespec_get These are implemented https://gustedt.gitlabpages.inria.fr/c23-library/#time_monotonic-time_active-time_thread_active with: #define TIME_UTC 1 #define TIME_MONOTONIC 2 #define TIME_ACTIVE 3 #define TIME_THREAD_ACTIVE 4 #define TIME_MONOTONIC_RAW 5 #define TIME_UTC_COARSE 6 #define TIME_MONOTONIC_COARSE 7 #define TIME_BOOTTIME 8 #define TIME_UTC_ALARM 9 #define TIME_BOOTTIME_ALARM 10 #define TIME_SGI_CYCLE 11 #define TIME_TAI 12 Signed-off-by: Yonggang Luo --- include/time.h | 13 +++++++++++- src/time/timespec_get.c | 44 +++++++++++++++++++++++++++++++++++++++-- 2 files changed, 54 insertions(+), 3 deletions(-) diff --git a/include/time.h b/include/time.h index 3d948372..ab31d373 100644 --- a/include/time.h +++ b/include/time.h @@ -64,7 +64,18 @@ int timespec_get(struct timespec *, int); #define CLOCKS_PER_SEC 1000000L -#define TIME_UTC 1 +#define TIME_UTC 1 +#define TIME_MONOTONIC 2 +#define TIME_ACTIVE 3 +#define TIME_THREAD_ACTIVE 4 +#define TIME_MONOTONIC_RAW 5 +#define TIME_UTC_COARSE 6 +#define TIME_MONOTONIC_COARSE 7 +#define TIME_BOOTTIME 8 +#define TIME_UTC_ALARM 9 +#define TIME_BOOTTIME_ALARM 10 +#define TIME_SGI_CYCLE 11 +#define TIME_TAI 12 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ diff --git a/src/time/timespec_get.c b/src/time/timespec_get.c index 40ea9c1c..b8738189 100644 --- a/src/time/timespec_get.c +++ b/src/time/timespec_get.c @@ -4,7 +4,47 @@ * are considered erroneous. */ int timespec_get(struct timespec * ts, int base) { - if (base != TIME_UTC) return 0; - int ret = __clock_gettime(CLOCK_REALTIME, ts); + clockid_t clockid = -1; + switch (base) { + default: + return 0; + case TIME_UTC: + clockid = CLOCK_REALTIME; + break; + case TIME_MONOTONIC: + clockid = CLOCK_MONOTONIC; + break; + case TIME_ACTIVE: + clockid = CLOCK_PROCESS_CPUTIME_ID; + break; + case TIME_THREAD_ACTIVE: + clockid = CLOCK_THREAD_CPUTIME_ID; + break; + case TIME_MONOTONIC_RAW: + clockid = CLOCK_MONOTONIC_RAW; + break; + case TIME_UTC_COARSE: + clockid = CLOCK_REALTIME_COARSE; + break; + case TIME_MONOTONIC_COARSE: + clockid = CLOCK_MONOTONIC_COARSE; + break; + case TIME_BOOTTIME: + clockid = CLOCK_BOOTTIME; + break; + case TIME_UTC_ALARM: + clockid = CLOCK_REALTIME_ALARM; + break; + case TIME_BOOTTIME_ALARM: + clockid = CLOCK_BOOTTIME_ALARM; + break; + case TIME_SGI_CYCLE: + clockid = CLOCK_SGI_CYCLE; + break; + case TIME_TAI: + clockid = CLOCK_TAI; + break; + } + int ret = __clock_gettime(clockid, ts); return ret < 0 ? 0 : base; } -- 2.39.0.windows.1