extern void print_timespec(struct tcb *, long);
extern void sprint_timespec(char *, struct tcb *, long);
extern void printsigevent(struct tcb *tcp, long arg);
-extern void printsiginfo_at(struct tcb *tcp, long addr);
extern void printfd(struct tcb *, int);
extern bool print_sockaddr_by_inode(const unsigned long, const char *);
extern void print_dirfd(struct tcb *, int);
#include "defs.h"
+#include DEF_MPERS_TYPE(siginfo_t)
+
#include <signal.h>
#include <linux/audit.h>
+#include MPERS_DEFS
+
+#ifndef IN_MPERS
#include "printsiginfo.h"
+#endif
#include "xlat/audit_arch.h"
#include "xlat/sigbus_codes.h"
}
}
+#ifdef IN_MPERS
+static
+#endif
void
printsiginfo(const siginfo_t *sip, bool verbose)
{
tprints("}");
}
-void
-printsiginfo_at(struct tcb *tcp, long addr)
+MPERS_PRINTER_DECL(void, printsiginfo_at)(struct tcb *tcp, long addr)
{
siginfo_t si;
printflags(ptrace_setoptions_flags, tcp->u_arg[3], "PTRACE_O_???");
break;
case PTRACE_SETSIGINFO: {
- printsiginfo_at(tcp, tcp->u_arg[3]);
+ MPERS_PRINTER_NAME(printsiginfo_at)(tcp, tcp->u_arg[3]);
break;
}
case PTRACE_SETREGSET:
break;
#endif
case PTRACE_GETSIGINFO: {
- printsiginfo_at(tcp, tcp->u_arg[3]);
+ MPERS_PRINTER_NAME(printsiginfo_at)(tcp, tcp->u_arg[3]);
break;
}
case PTRACE_GETREGSET:
{
printsignal(sig);
tprints(", ");
- printsiginfo_at(tcp, uinfo);
+ MPERS_PRINTER_NAME(printsiginfo_at)(tcp, uinfo);
}
SYS_FUNC(rt_sigqueueinfo)
}
else if (tcp->u_arg[1] != 0) {
/* syscall exit, and u_arg[1] wasn't NULL */
- printsiginfo_at(tcp, tcp->u_arg[1]);
+ MPERS_PRINTER_NAME(printsiginfo_at)(tcp, tcp->u_arg[1]);
tprints(", ");
}
else {
tprintf(", %ld, ", tcp->u_arg[1]);
} else {
/* siginfo */
- printsiginfo_at(tcp, tcp->u_arg[2]);
+ MPERS_PRINTER_NAME(printsiginfo_at)(tcp, tcp->u_arg[2]);
/* options */
tprints(", ");
printflags(wait4_options, tcp->u_arg[3], "W???");