printsigval(const siginfo_t *sip)
{
tprintf(", si_value={int=%d, ptr=", sip->si_int);
- printaddr((unsigned long) sip->si_ptr);
+ printaddr((kernel_ureg_t) sip->si_ptr);
tprints("}");
}
case SIGILL: case SIGFPE:
case SIGSEGV: case SIGBUS:
tprints(", si_addr=");
- printaddr((unsigned long) sip->si_addr);
+ printaddr((kernel_ureg_t) sip->si_addr);
break;
case SIGPOLL:
switch (sip->si_code) {
}
break;
#ifdef HAVE_SIGINFO_T_SI_SYSCALL
- case SIGSYS:
+ case SIGSYS: {
+ const char *scname =
+ syscall_name((unsigned) sip->si_syscall);
+
tprints(", si_call_addr=");
- printaddr((unsigned long) sip->si_call_addr);
- tprintf(", si_syscall=__NR_%s, si_arch=",
- syscall_name((unsigned) sip->si_syscall));
+ printaddr((kernel_ureg_t) sip->si_call_addr);
+ tprints(", si_syscall=");
+ if (scname)
+ tprintf("__NR_%s", scname);
+ else
+ tprintf("%u", (unsigned) sip->si_syscall);
+ tprints(", si_arch=");
printxval(audit_arch, sip->si_arch, "AUDIT_ARCH_???");
break;
+ }
#endif
default:
if (sip->si_pid || sip->si_uid)
}
MPERS_PRINTER_DECL(void, printsiginfo_at,
- struct tcb *tcp, long addr)
+ struct tcb *const tcp, const kernel_ureg_t addr)
{
siginfo_t si;
return true;
}
-MPERS_PRINTER_DECL(void, print_siginfo_array,
- struct tcb *tcp, unsigned long addr, unsigned long len)
+MPERS_PRINTER_DECL(void, print_siginfo_array, struct tcb *const tcp,
+ const kernel_ureg_t addr, const unsigned long len)
{
siginfo_t si;