From patchwork Mon Jul 13 17:10:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adhemerval Zanella X-Patchwork-Id: 40070 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 765AB388E80A; Mon, 13 Jul 2020 17:10:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 765AB388E80A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1594660239; bh=VwdWblVUD0cz0ko1ileuo4/Erzw+FqsgLBJuEXRp3Uo=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=eHm+C6MnmBoyNk7r7vGYgVhH8xyKD1ReqZyQz7SsQs7CH9eCBLNYk8uAYoYxxjzm+ riJereTesjf2NwzNmv5WhlHdUuDTtWY/1+Bkk7TrOuCwhz4wlH6ChTtrk3YqNr0uKZ RJ7fhTVr6HziCahiSJtgsgG03PAYI92N84ZCK54s= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) by sourceware.org (Postfix) with ESMTPS id E2FCE388CC07 for ; Mon, 13 Jul 2020 17:10:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org E2FCE388CC07 Received: by mail-qk1-x743.google.com with SMTP id 145so12914103qke.9 for ; Mon, 13 Jul 2020 10:10:36 -0700 (PDT) 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=VwdWblVUD0cz0ko1ileuo4/Erzw+FqsgLBJuEXRp3Uo=; b=LJ3JZF7JNC9Jb6rTYm92Esr6/g/9e2NNBlJdzhende9fFOa9R01uvLI10vIgjYKSj0 F46RlPY4niNDhL0VEJG22WEl7BxDZiIqC9yD4kYcGhdJ/HhJYLHArPPvFbHp3J+g2FNG dwT8rxYBuNTUPBS5jni90sNHQ7sDVsXXe/j7GijfhRG2H9qfT7vzI5+cDRwwUGXU3Zp5 wvDblsJi4zdqTQoNlE4QrZy2g1lJn1vFqpQPDJJn6909ItBEI/8rb7BCazH3N2O+UocF nM64kiRIU+QK7E76AtY8P4gUlrIEIVc840nxmgUoTOucQOjOnXBD+tzGOc4uYflWOT46 JJcg== X-Gm-Message-State: AOAM533NCarvVuBOEItmo1orjXuEtanex88/YHTZPfpfaNMxJoEdTYqA 9NIBN+cJj1eP1OqURX3f7agoOut+AjU= X-Google-Smtp-Source: ABdhPJxa1Vyml+nxiYRweb3Zfs1YHjCLfhNWAp4VD2gRXUd3KiQnXkqvhDiebB+PpsxJMJ6CQfCRjw== X-Received: by 2002:a37:9dc5:: with SMTP id g188mr508321qke.427.1594660236260; Mon, 13 Jul 2020 10:10:36 -0700 (PDT) Received: from localhost.localdomain ([177.194.48.209]) by smtp.googlemail.com with ESMTPSA id v10sm19767919qtk.14.2020.07.13.10.10.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jul 2020 10:10:35 -0700 (PDT) To: libc-alpha@sourceware.org Subject: [PATCH 05/23] linux: Simplify mq_timedreceive Date: Mon, 13 Jul 2020 14:10:07 -0300 Message-Id: <20200713171025.3661832-5-adhemerval.zanella@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20200713171025.3661832-1-adhemerval.zanella@linaro.org> References: <20200713171025.3661832-1-adhemerval.zanella@linaro.org> MIME-Version: 1.0 X-Spam-Status: No, score=-14.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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: Adhemerval Zanella via Libc-alpha From: Adhemerval Zanella Reply-To: Adhemerval Zanella Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" With arch-syscall.h it can now assumes the existance of either __NR_mq_timedreceive or __NR_mq_timedreceive_time64. The 32-bit time_t support is now only build for !__ASSUME_TIME64_SYSCALLS. The internal 64-bit time_t names is also adjusted to use the other y2038 symbol names. Checked on x86_64-linux-gnu and i686-linux-gnu (on 5.4 and on 4.15 kernel). Reviewed-by: Lukasz Majewski --- include/mqueue.h | 16 ++++++------ sysdeps/unix/sysv/linux/mq_timedreceive.c | 32 +++++++++++------------ 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/include/mqueue.h b/include/mqueue.h index 98e4596c22..b3ee8b7462 100644 --- a/include/mqueue.h +++ b/include/mqueue.h @@ -13,18 +13,18 @@ hidden_proto (mq_setattr) #include #if __TIMESIZE == 64 # define __mq_timedsend_time64 __mq_timedsend -# define __mq_timedreceive_time64 __mq_timedreceive +# define __mq_timedreceive64 __mq_timedreceive #else extern int __mq_timedsend_time64 (mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct __timespec64 *abs_timeout); librt_hidden_proto (__mq_timedsend_time64) -extern ssize_t __mq_timedreceive_time64 (mqd_t mqdes, - char *__restrict msg_ptr, - size_t msg_len, - unsigned int *__restrict msg_prio, - const struct __timespec64 *__restrict - abs_timeout); -librt_hidden_proto (__mq_timedreceive_time64) +extern ssize_t __mq_timedreceive64 (mqd_t mqdes, + char *__restrict msg_ptr, + size_t msg_len, + unsigned int *__restrict msg_prio, + const struct __timespec64 *__restrict + abs_timeout); +librt_hidden_proto (__mq_timedreceive64) #endif #endif diff --git a/sysdeps/unix/sysv/linux/mq_timedreceive.c b/sysdeps/unix/sysv/linux/mq_timedreceive.c index 728a63d1ec..61c27fd8f7 100644 --- a/sysdeps/unix/sysv/linux/mq_timedreceive.c +++ b/sysdeps/unix/sysv/linux/mq_timedreceive.c @@ -22,19 +22,17 @@ /* Receive the oldest from highest priority messages in message queue MQDES, stop waiting if ABS_TIMEOUT expires. */ ssize_t -__mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len, - unsigned int *__restrict msg_prio, - const struct __timespec64 *__restrict abs_timeout) +__mq_timedreceive64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len, + unsigned int *__restrict msg_prio, + const struct __timespec64 *__restrict abs_timeout) { -#ifdef __ASSUME_TIME64_SYSCALLS -# ifndef __NR_mq_timedreceive_time64 -# define __NR_mq_timedreceive_time64 __NR_mq_timedreceive -# endif - return SYSCALL_CANCEL (mq_timedreceive_time64, mqdes, msg_ptr, msg_len, - msg_prio, abs_timeout); -#else +#ifndef __NR_mq_timedreceive_time64 +# define __NR_mq_timedreceive_time64 __NR_mq_timedreceive +#endif int ret = SYSCALL_CANCEL (mq_timedreceive_time64, mqdes, msg_ptr, msg_len, - msg_prio, abs_timeout); + msg_prio, abs_timeout); + +#ifndef __ASSUME_TIME64_SYSCALLS if (ret == 0 || errno != ENOSYS) return ret; @@ -50,13 +48,15 @@ __mq_timedreceive_time64 (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len, ts32 = valid_timespec64_to_timespec (*abs_timeout); } - return SYSCALL_CANCEL (mq_timedreceive, mqdes, msg_ptr, msg_len, msg_prio, - abs_timeout != NULL ? &ts32 : NULL); + ret = SYSCALL_CANCEL (mq_timedreceive, mqdes, msg_ptr, msg_len, msg_prio, + abs_timeout != NULL ? &ts32 : NULL); #endif + + return ret; } #if __TIMESIZE != 64 -librt_hidden_def (__mq_timedreceive_time64) +librt_hidden_def (__mq_timedreceive64) ssize_t __mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len, @@ -67,8 +67,8 @@ __mq_timedreceive (mqd_t mqdes, char *__restrict msg_ptr, size_t msg_len, if (abs_timeout != NULL) ts64 = valid_timespec_to_timespec64 (*abs_timeout); - return __mq_timedreceive_time64 (mqdes, msg_ptr, msg_len, msg_prio, - abs_timeout != NULL ? &ts64 : NULL); + return __mq_timedreceive64 (mqdes, msg_ptr, msg_len, msg_prio, + abs_timeout != NULL ? &ts64 : NULL); } #endif