]> granicus.if.org Git - strace/commitdiff
print_io_getevents: parametrize print_timespec
authorDmitry V. Levin <ldv@altlinux.org>
Sat, 4 May 2019 23:15:52 +0000 (23:15 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Sat, 4 May 2019 23:15:52 +0000 (23:15 +0000)
This is going to be used to implement a parser of io_pgetevents_time64
syscall.

* aio.c (print_io_getevents): Add print_ts argument, invoke it
instead of print_timespec.
(SYS_FUNC(io_getevents), SYS_FUNC(io_pgetevents)): Pass print_timespec
to print_io_getevents.

aio.c

diff --git a/aio.c b/aio.c
index 91a291cf42c1c01cc9e812c2def6c1b7d86b691d..54df8d101129f06445b39d0088478e4c758ea8d7 100644 (file)
--- a/aio.c
+++ b/aio.c
@@ -217,7 +217,8 @@ SYS_FUNC(io_cancel)
 }
 
 static int
-print_io_getevents(struct tcb *tcp, bool has_usig)
+print_io_getevents(struct tcb *const tcp, const print_obj_by_addr_fn print_ts,
+                  const bool has_usig)
 {
        if (entering(tcp)) {
                printaddr(tcp->u_arg[0]);
@@ -235,7 +236,7 @@ print_io_getevents(struct tcb *tcp, bool has_usig)
                 * whether the syscall has failed or not.
                 */
                temporarily_clear_syserror(tcp);
-               print_timespec(tcp, tcp->u_arg[4]);
+               print_ts(tcp, tcp->u_arg[4]);
                if (has_usig) {
                        tprints(", ");
                        print_aio_sigset(tcp, tcp->u_arg[5]);
@@ -247,10 +248,10 @@ print_io_getevents(struct tcb *tcp, bool has_usig)
 
 SYS_FUNC(io_getevents)
 {
-       return print_io_getevents(tcp, false);
+       return print_io_getevents(tcp, print_timespec, false);
 }
 
 SYS_FUNC(io_pgetevents)
 {
-       return print_io_getevents(tcp, true);
+       return print_io_getevents(tcp, print_timespec, true);
 }