From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 118123 invoked by alias); 7 Sep 2017 22:45:27 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Received: (qmail 111552 invoked by uid 89); 7 Sep 2017 22:45:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.6 required=5.0 tests=BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_LAZY_DOMAIN_SECURITY,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy= X-HELO: smtp6-g21.free.fr From: "Albert ARIBAUD (3ADEV)" To: libc-alpha@sourceware.org Cc: "Albert ARIBAUD (3ADEV)" Subject: [RFC PATCH 39/52] Y2038: add function __utime_t64 Date: Thu, 07 Sep 2017 22:45:00 -0000 Message-Id: <20170907224219.12483-40-albert.aribaud@3adev.fr> In-Reply-To: <20170907224219.12483-39-albert.aribaud@3adev.fr> References: <20170907224219.12483-1-albert.aribaud@3adev.fr> <20170907224219.12483-2-albert.aribaud@3adev.fr> <20170907224219.12483-3-albert.aribaud@3adev.fr> <20170907224219.12483-4-albert.aribaud@3adev.fr> <20170907224219.12483-5-albert.aribaud@3adev.fr> <20170907224219.12483-6-albert.aribaud@3adev.fr> <20170907224219.12483-7-albert.aribaud@3adev.fr> <20170907224219.12483-8-albert.aribaud@3adev.fr> <20170907224219.12483-9-albert.aribaud@3adev.fr> <20170907224219.12483-10-albert.aribaud@3adev.fr> <20170907224219.12483-11-albert.aribaud@3adev.fr> <20170907224219.12483-12-albert.aribaud@3adev.fr> <20170907224219.12483-13-albert.aribaud@3adev.fr> <20170907224219.12483-14-albert.aribaud@3adev.fr> <20170907224219.12483-15-albert.aribaud@3adev.fr> <20170907224219.12483-16-albert.aribaud@3adev.fr> <20170907224219.12483-17-albert.aribaud@3adev.fr> <20170907224219.12483-18-albert.aribaud@3adev.fr> <20170907224219.12483-19-albert.aribaud@3adev.fr> <20170907224219.12483-20-albert.aribaud@3adev.fr> <20170907224219.12483-21-albert.aribaud@3adev.fr> <20170907224219.12483-22-albert.aribaud@3adev.fr> <20170907224219.12483-23-albert.aribaud@3adev.fr> <20170907224219.12483-24-albert.aribaud@3adev.fr> <20170907224219.12483-25-albert.aribaud@3adev.fr> <20170907224219.12483-26-albert.aribaud@3adev.fr> <20170907224219.12483-27-albert.aribaud@3adev.fr> <20170907224219.12483-28-albert.aribaud@3adev.fr> <20170907224219.12483-29-albert.aribaud@3adev.fr> <20170907224219.12483-30-albert.aribaud@3adev.fr> <20170907224219.12483-31-albert.aribaud@3adev.fr> <20170907224219.12483-32-albert.aribaud@3adev.fr> <20170907224219.12483-33-albert.aribaud@3adev.fr> <20170907224219.12483-34-albert.aribaud@3adev.fr> <20170907224219.12483-35-albert.aribaud@3adev.fr> <20170907224219.12483-36-albert.aribaud@3adev.fr> <20170907224219.12483-37-albert.aribaud@3adev.fr> <20170907224219.12483-38-albert.aribaud@3adev.fr> <20170907224219.12483-39-albert.aribaud@3adev.fr> X-SW-Source: 2017-09/txt/msg00355.txt.bz2 Signed-off-by: Albert ARIBAUD (3ADEV) --- include/utime.h | 7 +++++++ io/Versions | 1 + io/utime.c | 16 ++++++++++++++++ sysdeps/posix/utime.c | 22 ++++++++++++++++++++++ 4 files changed, 46 insertions(+) diff --git a/include/utime.h b/include/utime.h index 5049251311..eb907f7472 100644 --- a/include/utime.h +++ b/include/utime.h @@ -6,4 +6,11 @@ libc_hidden_proto (utime) #endif +/* Structure describing file times, 64-bit time version. */ +struct __utimbuf64 + { + __time64_t actime; /* Access time. */ + __time64_t modtime; /* Modification time. */ + }; + #endif /* utime.h */ diff --git a/io/Versions b/io/Versions index 33629a0d4e..622eb6fe12 100644 --- a/io/Versions +++ b/io/Versions @@ -134,5 +134,6 @@ libc { __xstat64_t64; __lxstat64_t64; __fxstatat64_t64; + __utime_t64; } } diff --git a/io/utime.c b/io/utime.c index 242ccd120a..776203896b 100644 --- a/io/utime.c +++ b/io/utime.c @@ -37,3 +37,19 @@ utime (const char *file, const struct utimbuf *times) libc_hidden_def (utime) stub_warning (utime) + +/* 64-bit time version */ + +int +__utime_t64 (const char *file, const struct utimbuf *times) +{ + if (file == NULL) + { + __set_errno (EINVAL); + return -1; + } + + __set_errno (ENOSYS); + return -1; +} +stub_warning (__utime_t64) diff --git a/sysdeps/posix/utime.c b/sysdeps/posix/utime.c index c8fe60ba91..d6662b7d4b 100644 --- a/sysdeps/posix/utime.c +++ b/sysdeps/posix/utime.c @@ -45,3 +45,25 @@ utime (const char *file, const struct utimbuf *times) return __utimes (file, tvp); } libc_hidden_def (utime) + +/* 64-bit time version */ + +int +__utime_t64 (const char *file, const struct __utimbuf64 *times) +{ + struct __timeval64 timevals[2]; + struct __timeval64 *tvp; + + if (times != NULL) + { + timevals[0].tv_sec = (time_t) times->actime; + timevals[0].tv_usec = 0L; + timevals[1].tv_sec = (time_t) times->modtime; + timevals[1].tv_usec = 0L; + tvp = timevals; + } + else + tvp = NULL; + + return __utimes_t64 (file, tvp); +} -- 2.11.0