]> granicus.if.org Git - strace/commitdiff
Implement parsers of new *time64 system calls
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 11 May 2019 22:35:56 +0000 (22:35 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 11 May 2019 22:35:56 +0000 (22:35 +0000)
* aio.c (SYS_FUNC(io_pgetevents_time64)): New function.
* desc.c (SYS_FUNC(pselect6_time64)): Likewise.
* futex.c (SYS_FUNC(futex_time64)): Likewise.
* ipc_sem.c (SYS_FUNC(semtimedop_time64)): Likewise.
* mmsghdr.c (SYS_FUNC(recvmmsg_time64)): Likewise.
* mq.c (SYS_FUNC(mq_timedsend_time64),
SYS_FUNC(mq_timedreceive_time64)): Likewise.
* poll.c (SYS_FUNC(ppoll_time64)): Likewise.
* sched.c (SYS_FUNC(sched_rr_get_interval_time64)): Likewise.
* signal.c (SYS_FUNC(rt_sigtimedwait_time64)): Likewise.
* time.c (SYS_FUNC(clock_settime64), SYS_FUNC(clock_gettime64),
SYS_FUNC(clock_nanosleep_time64), SYS_FUNC(timer_settime64),
SYS_FUNC(timer_gettime64), SYS_FUNC(timerfd_settime64),
SYS_FUNC(timerfd_gettime64)): Likewise.
* utimes.c (SYS_FUNC(utimensat_time64)): Likewise.
* linux/dummy.h (sys_clock_getres_time64): Redirect
to sys_clock_gettime64.

12 files changed:
aio.c
desc.c
futex.c
ipc_sem.c
linux/dummy.h
mmsghdr.c
mq.c
poll.c
sched.c
signal.c
time.c
utimes.c

diff --git a/aio.c b/aio.c
index 54df8d101129f06445b39d0088478e4c758ea8d7..7cc5f2194c96f266de51ff341f09432966b79983 100644 (file)
--- a/aio.c
+++ b/aio.c
@@ -255,3 +255,8 @@ SYS_FUNC(io_pgetevents)
 {
        return print_io_getevents(tcp, print_timespec, true);
 }
+
+SYS_FUNC(io_pgetevents_time64)
+{
+       return print_io_getevents(tcp, print_timespec64, true);
+}
diff --git a/desc.c b/desc.c
index 1b1e5003fdcfefdd1f7ef8ea1afd7b82df6307bb..1f2625d511bc06a8170722bfc0ba5900c77a26c7 100644 (file)
--- a/desc.c
+++ b/desc.c
@@ -249,3 +249,8 @@ SYS_FUNC(pselect6)
 {
        return do_pselect6(tcp, print_timespec, sprint_timespec);
 }
+
+SYS_FUNC(pselect6_time64)
+{
+       return do_pselect6(tcp, print_timespec64, sprint_timespec64);
+}
diff --git a/futex.c b/futex.c
index 41e4857dca24075b0ab590cd628a13912955132c..b9048bc0df34cda76153b88ca5f335fd17647b0d 100644 (file)
--- a/futex.c
+++ b/futex.c
@@ -127,3 +127,8 @@ SYS_FUNC(futex)
 {
        return do_futex(tcp, print_timespec);
 }
+
+SYS_FUNC(futex_time64)
+{
+       return do_futex(tcp, print_timespec64);
+}
index 5d706a58504db8b44eddf9025aa2758f6326e8a1..908a58c42b9415a231e9e8d5ea0a91d933c06bcb 100644 (file)
--- a/ipc_sem.c
+++ b/ipc_sem.c
@@ -87,6 +87,11 @@ SYS_FUNC(semtimedop)
        return do_semtimedop(tcp, print_timespec);
 }
 
+SYS_FUNC(semtimedop_time64)
+{
+       return do_semtimedop(tcp, print_timespec64);
+}
+
 SYS_FUNC(semget)
 {
        printxval(ipc_private, (unsigned int) tcp->u_arg[0], NULL);
index a21ffb68376f2d081b32c3489cb7e157b716b980..012c844c19abe51155fd6b2a2c91dcc0bf3ba332 100644 (file)
@@ -41,6 +41,7 @@
 # define sys_acct              sys_chdir
 # define sys_chroot            sys_chdir
 # define sys_clock_getres      sys_clock_gettime
+# define sys_clock_getres_time64       sys_clock_gettime64
 # define sys_connect           sys_bind
 # define sys_fchdir            sys_close
 # define sys_fdatasync         sys_close
index 64365188ab439594b289fdaec895450d9c0317b5..15c3d1a22003a000a842017a85291f3c8b144837 100644 (file)
--- a/mmsghdr.c
+++ b/mmsghdr.c
@@ -229,3 +229,8 @@ SYS_FUNC(recvmmsg)
 {
        return do_recvmmsg(tcp, print_timespec, sprint_timespec);
 }
+
+SYS_FUNC(recvmmsg_time64)
+{
+       return do_recvmmsg(tcp, print_timespec64, sprint_timespec64);
+}
diff --git a/mq.c b/mq.c
index cc8b42563a2b5357c36a83510892deabb832e77a..c9f9ee1aa0a4716379751d4b6cdd312a19c0cb04 100644 (file)
--- a/mq.c
+++ b/mq.c
@@ -43,6 +43,11 @@ SYS_FUNC(mq_timedsend)
        return do_mq_timedsend(tcp, print_timespec);
 }
 
+SYS_FUNC(mq_timedsend_time64)
+{
+       return do_mq_timedsend(tcp, print_timespec64);
+}
+
 static int
 do_mq_timedreceive(struct tcb *const tcp, const print_obj_by_addr_fn print_ts)
 {
@@ -74,6 +79,11 @@ SYS_FUNC(mq_timedreceive)
        return do_mq_timedreceive(tcp, print_timespec);
 }
 
+SYS_FUNC(mq_timedreceive_time64)
+{
+       return do_mq_timedreceive(tcp, print_timespec64);
+}
+
 SYS_FUNC(mq_notify)
 {
        printfd(tcp, tcp->u_arg[0]);
diff --git a/poll.c b/poll.c
index 5ad16da26b8ccd97b36578e2a9e58480861ecd37..16145546aebdb1318a11a9050ade51dac3c1e4b8 100644 (file)
--- a/poll.c
+++ b/poll.c
@@ -168,3 +168,8 @@ SYS_FUNC(ppoll)
 {
        return do_ppoll(tcp, print_timespec, sprint_timespec);
 }
+
+SYS_FUNC(ppoll_time64)
+{
+       return do_ppoll(tcp, print_timespec64, sprint_timespec64);
+}
diff --git a/sched.c b/sched.c
index ff0889a0ba83aeaaf723fe205f8e67a88897bd71..49b6ffdaa9dc1445d49115ea3a46a411f9dfff36 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -81,6 +81,11 @@ SYS_FUNC(sched_rr_get_interval)
        return do_sched_rr_get_interval(tcp, print_timespec);
 }
 
+SYS_FUNC(sched_rr_get_interval_time64)
+{
+       return do_sched_rr_get_interval(tcp, print_timespec64);
+}
+
 static void
 print_sched_attr(struct tcb *const tcp, const kernel_ulong_t addr,
                 unsigned int usize)
index ce328aa1616264dbfee2b42fccffe65b901638b1..65a6e3d73f3540cba688ef1b202f02f3ece56d66 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -691,6 +691,11 @@ SYS_FUNC(rt_sigtimedwait)
        return do_rt_sigtimedwait(tcp, print_timespec, sprint_timespec);
 }
 
+SYS_FUNC(rt_sigtimedwait_time64)
+{
+       return do_rt_sigtimedwait(tcp, print_timespec64, sprint_timespec64);
+}
+
 SYS_FUNC(restart_syscall)
 {
        tprintf("<... resuming interrupted %s ...>",
diff --git a/time.c b/time.c
index e912ba3c442190839ad47f700cbb89cd36fe3e3d..53329917fe9e723e3e5078f1ed6a7a7996a45d7f 100644 (file)
--- a/time.c
+++ b/time.c
@@ -239,6 +239,11 @@ SYS_FUNC(clock_settime)
        return do_clock_settime(tcp, print_timespec);
 }
 
+SYS_FUNC(clock_settime64)
+{
+       return do_clock_settime(tcp, print_timespec64);
+}
+
 static int
 do_clock_gettime(struct tcb *const tcp, const print_obj_by_addr_fn print_ts)
 {
@@ -256,6 +261,11 @@ SYS_FUNC(clock_gettime)
        return do_clock_gettime(tcp, print_timespec);
 }
 
+SYS_FUNC(clock_gettime64)
+{
+       return do_clock_gettime(tcp, print_timespec64);
+}
+
 static int
 do_clock_nanosleep(struct tcb *const tcp, const print_obj_by_addr_fn print_ts)
 {
@@ -287,6 +297,11 @@ SYS_FUNC(clock_nanosleep)
        return do_clock_nanosleep(tcp, print_timespec);
 }
 
+SYS_FUNC(clock_nanosleep_time64)
+{
+       return do_clock_nanosleep(tcp, print_timespec64);
+}
+
 static int
 do_clock_adjtime(struct tcb *const tcp, const print_obj_by_addr_fn print_tx)
 {
@@ -349,6 +364,11 @@ SYS_FUNC(timer_settime)
        return do_timer_settime(tcp, print_itimerspec);
 }
 
+SYS_FUNC(timer_settime64)
+{
+       return do_timer_settime(tcp, print_itimerspec64);
+}
+
 static int
 do_timer_gettime(struct tcb *const tcp, const print_obj_by_addr_fn print_its)
 {
@@ -365,6 +385,11 @@ SYS_FUNC(timer_gettime)
        return do_timer_gettime(tcp, print_itimerspec);
 }
 
+SYS_FUNC(timer_gettime64)
+{
+       return do_timer_gettime(tcp, print_itimerspec64);
+}
+
 #include "xlat/timerfdflags.h"
 
 SYS_FUNC(timerfd_create)
@@ -397,6 +422,11 @@ SYS_FUNC(timerfd_settime)
        return do_timerfd_settime(tcp, print_itimerspec);
 }
 
+SYS_FUNC(timerfd_settime64)
+{
+       return do_timerfd_settime(tcp, print_itimerspec64);
+}
+
 static int
 do_timerfd_gettime(struct tcb *const tcp, const print_obj_by_addr_fn print_its)
 {
@@ -413,3 +443,8 @@ SYS_FUNC(timerfd_gettime)
 {
        return do_timerfd_gettime(tcp, print_itimerspec);
 }
+
+SYS_FUNC(timerfd_gettime64)
+{
+       return do_timerfd_gettime(tcp, print_itimerspec64);
+}
index 5dd98a12138327b3beaf3550cc47449c275eff4d..cf9168e3208392ebd3c465f576885600dafe5f14 100644 (file)
--- a/utimes.c
+++ b/utimes.c
@@ -51,6 +51,11 @@ SYS_FUNC(utimensat)
        return do_utimensat(tcp, print_timespec_utime_pair);
 }
 
+SYS_FUNC(utimensat_time64)
+{
+       return do_utimensat(tcp, print_timespec64_utime_pair);
+}
+
 #ifdef ALPHA
 SYS_FUNC(osf_utimes)
 {