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_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 744 invoked from network); 27 Dec 2020 18:57:31 -0000 Received: from mother.openwall.net (195.42.179.200) by inbox.vuxu.org with ESMTPUTF8; 27 Dec 2020 18:57:31 -0000 Received: (qmail 30675 invoked by uid 550); 27 Dec 2020 18:57:16 -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 7237 invoked from network); 27 Dec 2020 18:43:15 -0000 Date: Sun, 27 Dec 2020 18:42:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail; t=1609094583; bh=LOJUm84QlLbnuowXHQlG7dNrz4Y8GxcCJp/NOoUYksI=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References:From; b=UbdbNtWY6YMgb5NQh7Klgl+Ul+yyO7AJxDPDUVfcZOxBwvpyhgFKYAFe5iy80wTkl YepucCqkurwhhDiLXVLQ5umvXyms3bLqDt2/6sJxdW9MfrhqACfxgWq2+peo1/m3fZ /M24WtDNtJZ7RKww9qvdqjIp8Ae6jwQ01t0UNU22aHfcpnan8N0F1khiDqkazbj4C4 A8w6vUVIE5rlCrAePUp9C2eZ88iGQ7bpM8NJonkUfDq6gsXZAaC/RaoKwHG/hkEvNJ NnKB8mtXl0zyTQqQkFoRypPn4vqcB2OiwNtB8YC/ipvDuq8l87DvQFEj+MSc/3ZEu2 JquSLmc4kBGCg== To: Rich Felker , musl@lists.openwall.com From: Alexander Lobakin Cc: Alexander Lobakin Message-ID: <20201227184032.22413-18-alobakin@pm.me> In-Reply-To: <20201227184032.22413-1-alobakin@pm.me> References: <20201227183842.22030-1-alobakin@pm.me> <20201227184032.22413-1-alobakin@pm.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Subject: [musl] [PATCH 18/18] sched_rr_get_interval: use time64 variant if available Use the new time64 variant of sched_rr_get_interval as a default and fallback to the old one only on -ENOSYS. Signed-off-by: Alexander Lobakin --- src/sched/sched_rr_get_interval.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/sched/sched_rr_get_interval.c b/src/sched/sched_rr_get_int= erval.c index 33a3d1aeed43..bdcba9c57248 100644 --- a/src/sched/sched_rr_get_interval.c +++ b/src/sched/sched_rr_get_interval.c @@ -4,18 +4,17 @@ int sched_rr_get_interval(pid_t pid, struct timespec *ts) { #ifdef SYS_sched_rr_get_interval_time64 -=09/* On a 32-bit arch, use the old syscall if it exists. */ -=09if (SYS_sched_rr_get_interval !=3D SYS_sched_rr_get_interval_time64) { -=09=09long ts32[2]; -=09=09int r =3D __syscall(SYS_sched_rr_get_interval, pid, ts32); -=09=09if (!r) { -=09=09=09ts->tv_sec =3D ts32[0]; -=09=09=09ts->tv_nsec =3D ts32[1]; -=09=09} +=09int r =3D __syscall(SYS_sched_rr_get_interval_time64, pid, ts); +=09if (SYS_sched_rr_get_interval =3D=3D SYS_sched_rr_get_interval_time64 |= | r !=3D -ENOSYS) =09=09return __syscall_ret(r); +=09long ts32[2]; +=09r =3D __syscall(SYS_sched_rr_get_interval, pid, ts32); +=09if (!r) { +=09=09ts->tv_sec =3D ts32[0]; +=09=09ts->tv_nsec =3D ts32[1]; =09} -#endif -=09/* If reaching this point, it's a 64-bit arch or time64-only -=09 * 32-bit arch and we can get result directly into timespec. */ +=09return __syscall_ret(r); +#else =09return syscall(SYS_sched_rr_get_interval, pid, ts); +#endif } --=20 2.29.2