From: Dmitry V. Levin Date: Mon, 3 Aug 2015 09:12:26 +0000 (+0000) Subject: signal.c: move signalfd parsers to a separate file X-Git-Tag: v4.11~287 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=2307d5c96884c3991067b2b04b25bb1ad90596fd;p=strace signal.c: move signalfd parsers to a separate file * signalfd.c: New file. * Makefile.am (strace_SOURCES): Add it. * signal.c (do_signalfd, sys_signalfd, sys_signalfd4): Move to signalfd.c --- diff --git a/Makefile.am b/Makefile.am index 5837782e..ff05a250 100644 --- a/Makefile.am +++ b/Makefile.am @@ -104,6 +104,7 @@ strace_SOURCES = \ seccomp.c \ sigaltstack.c \ signal.c \ + signalfd.c \ sigreturn.c \ sock.c \ socketutils.c \ diff --git a/signal.c b/signal.c index e0f2a70b..1df3fe5b 100644 --- a/signal.c +++ b/signal.c @@ -685,29 +685,3 @@ SYS_FUNC(restart_syscall) return RVAL_DECODED; } - -static int -do_signalfd(struct tcb *tcp, int flags_arg) -{ - /* NB: kernel requires arg[2] == NSIG / 8 */ - printfd(tcp, tcp->u_arg[0]); - tprints(", "); - print_sigset_addr_len(tcp, tcp->u_arg[1], tcp->u_arg[2]); - tprintf(", %lu", tcp->u_arg[2]); - if (flags_arg >= 0) { - tprints(", "); - printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???"); - } - - return RVAL_DECODED; -} - -SYS_FUNC(signalfd) -{ - return do_signalfd(tcp, -1); -} - -SYS_FUNC(signalfd4) -{ - return do_signalfd(tcp, 3); -} diff --git a/signalfd.c b/signalfd.c new file mode 100644 index 00000000..34f71beb --- /dev/null +++ b/signalfd.c @@ -0,0 +1,27 @@ +#include "defs.h" + +static int +do_signalfd(struct tcb *tcp, int flags_arg) +{ + /* NB: kernel requires arg[2] == NSIG / 8 */ + printfd(tcp, tcp->u_arg[0]); + tprints(", "); + print_sigset_addr_len(tcp, tcp->u_arg[1], tcp->u_arg[2]); + tprintf(", %lu", tcp->u_arg[2]); + if (flags_arg >= 0) { + tprints(", "); + printflags(open_mode_flags, tcp->u_arg[flags_arg], "O_???"); + } + + return RVAL_DECODED; +} + +SYS_FUNC(signalfd) +{ + return do_signalfd(tcp, -1); +} + +SYS_FUNC(signalfd4) +{ + return do_signalfd(tcp, 3); +}