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.boz...@syrmia.com> > --- > linux-user/syscall.c | 139 +++++++++++++++++++++++++++++++++++++- > linux-user/syscall_defs.h | 5 ++ > 2 files changed, 143 insertions(+), 1 deletion(-) >
Reviewed-by: Laurent Vivier <laur...@vivier.eu>