[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v2 2/2] linux-user: Add support for a group of 2038 safe sysc
From: |
Laurent Vivier |
Subject: |
Re: [PATCH v2 2/2] linux-user: Add support for a group of 2038 safe syscalls |
Date: |
Fri, 7 Aug 2020 13:13:10 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 |
Le 22/07/2020 à 17:34, Filip Bozuta a écrit :
> This patch implements functionality for following time64 syscalls:
>
> *clock_getres_time64
>
> This a year 2038 safe variant of syscall:
>
> int clock_getres(clockid_t clockid, struct timespec *res)
> --finding the resoultion of a specified clock--
> man page: https://man7.org/linux/man-pages/man2/clock_getres.2.html
>
> *timer_gettime64
> *timer_settime64
>
> These are year 2038 safe variants of syscalls:
>
> int timer_settime(timer_t timerid, int flags,
> const struct itimerspec *new_value,
> struct itimerspec *old_value)
> int timer_gettime(timer_t timerid, struct itimerspec *curr_value)
> --arming/dissarming and fetching state of POSIX per-process timer--
> man page: https://man7.org/linux/man-pages/man2/timer_settime.2.html
>
> *timerfd_gettime64
> *timerfd_settime64
>
> These are year 2038 safe variants of syscalls:
>
> int timerfd_settime(int fd, int flags,
> const struct itimerspec *new_value,
> struct itimerspec *old_value)
> int timerfd_gettime(int fd, struct itimerspec *curr_value)
> --timers that notify via file descriptor--
> man page: https://man7.org/linux/man-pages/man2/timerfd_settime.2.html
>
> Implementation notes:
>
> Syscall 'clock_getres_time64' was implemented similarly to
> 'clock_getres()'.
> The only difference was that for the conversion of 'struct timespec' from
> host to target, function 'host_to_target_timespec64()' was used instead
> of
> 'host_to_target_timespec()'.
>
> For other syscalls, new functions 'host_to_target_itimerspec64()' and
> 'target_to_host_itimerspec64()' were added to convert the value of the
> 'struct itimerspec' from host to target and vice versa. A new type
> 'struct target__kernel_itimerspec' was added in 'syscall_defs.h'. This
> type was defined with fields which are of the already defined type
> 'struct target_timespec'. This new 'struct target__kernel_itimerspec'
> type is used in these new converting functions. These new functions were
> defined similarly to 'host_to_target_itimerspec()' and
> 'target_to_host_itimerspec()'
> the only difference being that 'target_to_host_timespec64()' and
> 'host_to_target_timespec64()' were used.
>
> Signed-off-by: Filip Bozuta <Filip.Bozuta@syrmia.com>
> ---
> linux-user/syscall.c | 139 +++++++++++++++++++++++++++++++++++++-
> linux-user/syscall_defs.h | 5 ++
> 2 files changed, 143 insertions(+), 1 deletion(-)
>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
- Re: [PATCH v2 2/2] linux-user: Add support for a group of 2038 safe syscalls,
Laurent Vivier <=