mirror of
https://github.com/Zenithsiz/ftmemsim-valgrind.git
synced 2026-02-08 21:09:49 +00:00
This patch adds sycall wrappers for the following syscalls which use a 64bit time_t on 32bit arches: gettime64, settime64, clock_getres_time64, clock_nanosleep_time64, timer_gettime64, timer_settime64, timerfd_gettime64, timerfd_settime64, utimensat_time64, pselect6_time64, ppoll_time64, recvmmsg_time64, mq_timedsend_time64, mq_timedreceive_time64, semtimedop_time64, rt_sigtimedwait_time64, futex_time64 and sched_rr_get_interval_time64. Still missing are clock_adjtime64 and io_pgetevents_time64. For the more complicated syscalls futex[_time64], pselect6[_time64] and ppoll[_time64] there are shared pre and/or post helper functions. Other functions just have their own PRE and POST handler. Note that the vki_timespec64 struct really is the struct as used by by glibc (it internally translates a 32bit timespec struct to a 64bit timespec64 struct before passing it to any of the time64 syscalls). The kernel uses a 64-bit signed int, but is ignoring the upper 32 bits of the tv_nsec field. It does always write the full struct though. So avoid checking the padding is only needed for PRE_MEM_READ. There are two helper pre_read_timespec64 and pre_read_itimerspec64 to check the new structs. https://bugs.kde.org/show_bug.cgi?id=416753