From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS3215 2.6.0.0/16 X-Spam-Status: No, score=-3.7 required=3.0 tests=AWL,BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_PASS, SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id 53A471F8C1 for ; Fri, 8 May 2020 14:57:17 +0000 (UTC) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D15F13972456; Fri, 8 May 2020 14:57:09 +0000 (GMT) Received: from mail-out.m-online.net (mail-out.m-online.net [212.18.0.10]) by sourceware.org (Postfix) with ESMTPS id 8A8983851C02 for ; Fri, 8 May 2020 14:57:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 8A8983851C02 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=denx.de Authentication-Results: sourceware.org; spf=none smtp.mailfrom=lukma@denx.de Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 49JYMQ27w7z1rt3q; Fri, 8 May 2020 16:57:06 +0200 (CEST) Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 49JYMQ1sbNz1r79l; Fri, 8 May 2020 16:57:06 +0200 (CEST) X-Virus-Scanned: amavisd-new at mnet-online.de Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id NlHjTTMsrmUf; Fri, 8 May 2020 16:57:05 +0200 (CEST) X-Auth-Info: yXBjsNMdCBmxAn1Pv8481sFwso1/Z1/IuTRU1UekthQ= Received: from localhost.localdomain (85-222-111-42.dynamic.chello.pl [85.222.111.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Fri, 8 May 2020 16:57:05 +0200 (CEST) From: Lukasz Majewski To: Joseph Myers , Adhemerval Zanella Subject: [PATCH v2 4/7] y2038: Introduce struct __ntptimeval64 - new internal glibc type Date: Fri, 8 May 2020 16:56:37 +0200 Message-Id: <20200508145640.16336-5-lukma@denx.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200508145640.16336-1-lukma@denx.de> References: <20200508145640.16336-1-lukma@denx.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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: , Cc: Florian Weimer , GNU C Library , Andreas Schwab , Alistair Francis Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" This type is a glibc's "internal" type to get time parameters data from Linux kernel (NTP daemon interface). It stores time in struct __timeval64 rather than struct timeval, which makes it Y2038-proof. Build tests: ./src/scripts/build-many-glibcs.py glibcs --- sysdeps/unix/sysv/linux/include/sys/timex.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/sysdeps/unix/sysv/linux/include/sys/timex.h b/sysdeps/unix/sysv/linux/include/sys/timex.h index cf3059f63c..8c536b9a95 100644 --- a/sysdeps/unix/sysv/linux/include/sys/timex.h +++ b/sysdeps/unix/sysv/linux/include/sys/timex.h @@ -32,6 +32,7 @@ libc_hidden_proto (__adjtimex) # define __timex64 timex # define __clock_adjtime64 __clock_adjtime # define ___adjtimex64 ___adjtimex +# define __ntptimeval64 ntptimeval # else struct __timex64 @@ -77,6 +78,19 @@ extern int __clock_adjtime64 (const clockid_t clock_id, struct __timex64 *tx64); libc_hidden_proto (__clock_adjtime64); extern int ___adjtimex64 (struct __timex64 *tx64); libc_hidden_proto (___adjtimex64) + +struct __ntptimeval64 +{ + struct __timeval64 time; /* current time (ro) */ + long int maxerror; /* maximum error (us) (ro) */ + long int esterror; /* estimated error (us) (ro) */ + long int tai; /* TAI offset (ro) */ + + long int __glibc_reserved1; + long int __glibc_reserved2; + long int __glibc_reserved3; + long int __glibc_reserved4; +}; # endif /* Convert a known valid struct timex into a struct __timex64. */ -- 2.20.1