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 21190 invoked from network); 20 Jun 2023 07:45:18 -0000 Received: from second.openwall.net (193.110.157.125) by inbox.vuxu.org with ESMTPUTF8; 20 Jun 2023 07:45:18 -0000 Received: (qmail 23966 invoked by uid 550); 20 Jun 2023 07:45:08 -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 23849 invoked from network); 20 Jun 2023 07:45:07 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687247095; x=1689839095; 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=RXT5yLQ0Md1Pnb3xAI0fAZy9AfA3r/MO0zTbnlskJAWFtaXEGGU1GwL1zgai3MEu0O 3SIlnvvKRO6ZgPtea+AQaDzBEl8pzFiVrNWbVKav9A2VEdgLg9pHMbvGJeWcRWw6XaaN 1GfCk8PzfTlYUszOW+0peTvDQ07/QMQ2YmI/16VRWfglOrRp6qCvyGKJ+xFShB68blRx wvhXpYn0z/ae9Ky9RZbgukRCx2btzPhPUdu2j1o8XzO64k3Yf8aTBTPkEVVwTvXYFEHh d9EJfNx48ic5hvZfKdnTTrn6dbGGmvG+9Y68CpyCPlSwHtwLWOMoPK6MYS7JDw4P5Xwy 4QxA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687247095; x=1689839095; 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=K4ilpK8kuiD759FhF4XmLNUgQ9k+qZbV4RHNgapLI72IwvlG/ELJwBIMJ78AuEv0XN GcnqVtQ0XKeeJNiRoN7fFN4JizB11QKoPir8FCo7MXXSOcJ+PRVdcEZiwH1a9qfbntrR PVJ7cXtrnV5XdBXBt/rWlArynkM+dy7HBBWK7wwN7OuiJCvXbDQfwYMq6rB3wcmA2pXS X56ZLir7SbSiJ37tGXf6lUwlKIU5kJKSEBlRa+9fyYKu5X+CLucC1LcmrsRlq41F6R3l X7iLDEm59E5cCG7IOhi5JF6RMV70eF0STj7z/8yqj/sAA7du7eDdRXxzS7e87GYFGmXU k3oA== X-Gm-Message-State: AC+VfDzmg6Ulq5a4JyG1AhASfk/44Xzs4iVrNRvemJHSaFT/4LzNoulg JwrVPotvpoxi0KoUtNSLAuKBFRk2THb55w== X-Google-Smtp-Source: ACHHUZ6Sb18O+cTwYhg9n0EfSaYU1RssIPkXZIpzMqmyWacgcq3V01f+tzrfPOkLrovl/Jrn+Ruj5w== X-Received: by 2002:a17:903:507:b0:1b6:79da:2774 with SMTP id jn7-20020a170903050700b001b679da2774mr1743694plb.56.1687247095294; Tue, 20 Jun 2023 00:44:55 -0700 (PDT) From: Yonggang Luo To: Jens Gustedt , musl@lists.openwall.com Cc: Yonggang Luo Date: Tue, 20 Jun 2023 15:44:27 +0800 Message-Id: <20230620074427.131-2-luoyonggang@gmail.com> X-Mailer: git-send-email 2.39.0.windows.1 In-Reply-To: <20230620074427.131-1-luoyonggang@gmail.com> References: <20230620074427.131-1-luoyonggang@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [musl] [PATCH v2 3/4] 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