From db16c52668d3d0b9a8eb5f67d2377fb124f819e4 Mon Sep 17 00:00:00 2001 From: "Dmitry V. Levin" Date: Thu, 11 Dec 2014 19:21:54 +0000 Subject: [PATCH] process.c: move process_vm_readv and process_vm_writev parsers to a separate file * process_vm.c: New file. * Makefile.am (strace_SOURCES): Add it. * process.c (sys_process_vm_readv, sys_process_vm_writev): Move to process_vm.c. --- Makefile.am | 1 + process.c | 53 --------------------------------------------------- process_vm.c | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 53 deletions(-) create mode 100644 process_vm.c diff --git a/Makefile.am b/Makefile.am index ef1f1d00..b6503ed9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -56,6 +56,7 @@ strace_SOURCES = \ personality.c \ printmode.c \ process.c \ + process_vm.c \ ptp.c \ quota.c \ readahead.c \ diff --git a/process.c b/process.c index afb86de9..ede4224b 100644 --- a/process.c +++ b/process.c @@ -2532,56 +2532,3 @@ sys_getcpu(struct tcb *tcp) } return 0; } - -int -sys_process_vm_readv(struct tcb *tcp) -{ - if (entering(tcp)) { - /* arg 1: pid */ - tprintf("%ld, ", tcp->u_arg[0]); - } else { - /* arg 2: local iov */ - if (syserror(tcp)) { - tprintf("%#lx", tcp->u_arg[1]); - } else { - tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1); - } - /* arg 3: local iovcnt */ - tprintf(", %lu, ", tcp->u_arg[2]); - /* arg 4: remote iov */ - if (syserror(tcp)) { - tprintf("%#lx", tcp->u_arg[3]); - } else { - tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0); - } - /* arg 5: remote iovcnt */ - /* arg 6: flags */ - tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]); - } - return 0; -} - -int -sys_process_vm_writev(struct tcb *tcp) -{ - if (entering(tcp)) { - /* arg 1: pid */ - tprintf("%ld, ", tcp->u_arg[0]); - /* arg 2: local iov */ - if (syserror(tcp)) - tprintf("%#lx", tcp->u_arg[1]); - else - tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1); - /* arg 3: local iovcnt */ - tprintf(", %lu, ", tcp->u_arg[2]); - /* arg 4: remote iov */ - if (syserror(tcp)) - tprintf("%#lx", tcp->u_arg[3]); - else - tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0); - /* arg 5: remote iovcnt */ - /* arg 6: flags */ - tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]); - } - return 0; -} diff --git a/process_vm.c b/process_vm.c new file mode 100644 index 00000000..9bd85a87 --- /dev/null +++ b/process_vm.c @@ -0,0 +1,54 @@ +#include "defs.h" + +int +sys_process_vm_readv(struct tcb *tcp) +{ + if (entering(tcp)) { + /* arg 1: pid */ + tprintf("%ld, ", tcp->u_arg[0]); + } else { + /* arg 2: local iov */ + if (syserror(tcp)) { + tprintf("%#lx", tcp->u_arg[1]); + } else { + tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1); + } + /* arg 3: local iovcnt */ + tprintf(", %lu, ", tcp->u_arg[2]); + /* arg 4: remote iov */ + if (syserror(tcp)) { + tprintf("%#lx", tcp->u_arg[3]); + } else { + tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0); + } + /* arg 5: remote iovcnt */ + /* arg 6: flags */ + tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]); + } + return 0; +} + +int +sys_process_vm_writev(struct tcb *tcp) +{ + if (entering(tcp)) { + /* arg 1: pid */ + tprintf("%ld, ", tcp->u_arg[0]); + /* arg 2: local iov */ + if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[1]); + else + tprint_iov(tcp, tcp->u_arg[2], tcp->u_arg[1], 1); + /* arg 3: local iovcnt */ + tprintf(", %lu, ", tcp->u_arg[2]); + /* arg 4: remote iov */ + if (syserror(tcp)) + tprintf("%#lx", tcp->u_arg[3]); + else + tprint_iov(tcp, tcp->u_arg[4], tcp->u_arg[3], 0); + /* arg 5: remote iovcnt */ + /* arg 6: flags */ + tprintf(", %lu, %lu", tcp->u_arg[4], tcp->u_arg[5]); + } + return 0; +} -- 2.40.0