From mboxrd@z Thu Jan 1 00:00:00 1970 Subject: Re: [PATCH] y2038: introduce new time representations at the boundary References: <1614690327-3500-1-git-send-email-chensong@tj.kylinos.cn> <603E3952.1070109@tj.kylinos.cn> From: chensong Message-ID: <6040770F.4000405@kylinos.cn> Date: Thu, 4 Mar 2021 13:58:39 +0800 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: 8bit List-Id: Discussions about the Xenomai project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: "florian.bezdeka@siemens.com" , "chensong@tj.kylinos.cn" Cc: "xenomai@xenomai.org" On 2021年03月02日 21:43, florian.bezdeka--- via Xenomai wrote: > On Tue, 2021-03-02 at 21:10 +0800, chensong wrote: >> Florian $ Philippe, >> >> As the discussion in the mails 2021-02-21, we are going to replace >> __user_old_timespec with __kernel_old_timespec to keep aligned with >> upstream. > > Please note the y2038 related patches from Philippe located in the > wip/dovetail branch of the Xenomai repository. That work has already > been done. > Thanks, i was working on the xenomai-rpm, now i move to [1] branch wip/dovetail, is it correct? [1]https://source.denx.de/Xenomai/xenomai.git >> >> This patch introduced their definitions, if you both agree, i will start >> replacing __user_old_timespec and __user_old_timeval afterward. >> >> BR >> >> Song >> >> On 2021年03月02日 21:05, chensong wrote: >>> Since timespec and timeval will be removed because of >>> y2038 problem, we need to introduce new time representations at >>> the kernel-user boundary and we also need to keep aligned with >>> upstream at the same time. >>> >>> Therefore, we introduce: >>> 1)__kernel_old_timeval >>> 2)__kernel_old_timespec >>> from upstream, their tv_sec are defined as long and as a result their width >>> is able to adapt different arch automatically. >>> >>> Signed-off-by: chensong >>> --- >>> include/cobalt/uapi/kernel/types.h | 15 +++++++++++++++ >>> 1 file changed, 15 insertions(+) >>> >>> diff --git a/include/cobalt/uapi/kernel/types.h b/include/cobalt/uapi/kernel/types.h >>> index 2c931c2..8931d82 100644 >>> --- a/include/cobalt/uapi/kernel/types.h >>> +++ b/include/cobalt/uapi/kernel/types.h >>> @@ -20,6 +20,7 @@ >>> >>> #include >>> #include >>> +#include >>> >>> typedef __u64 xnticks_t; >>> >>> @@ -78,6 +79,20 @@ struct __user_old_timeval { >>> long tv_usec; >>> }; >>> >>> +#if LINUX_VERSION_CODE < KERNEL_VERSION(4,17,0) >>> +struct __kernel_old_timeval { >>> + __kernel_long_t tv_sec; >>> + __kernel_long_t tv_usec; >>> +}; >>> +#endif >>> + >>> +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,5,0) >>> +struct __kernel_old_timespec { >>> + __kernel_old_time_t tv_sec; /* seconds */ >>> + long tv_nsec; /* nanoseconds */ >>> +}; >>> +#endif >>> + >>> /* Lifted from include/uapi/linux/timex.h. */ >>> struct __user_old_timex { >>> unsigned int modes; /* mode selector */ >>> >> >> >