1527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levinstatic void 2527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levinarch_sigreturn(struct tcb *tcp) 3527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin{ 4d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes unsigned long regs[PT_MAX + 1]; 5a3c483545a7fb3a075f885a01a3c58b2f84db8faDmitry V. Levin 6d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes if (ptrace(PTRACE_GETREGS, tcp->pid, NULL, regs) < 0) { 7527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin perror_msg("sigreturn: PTRACE_GETREGS"); 8527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin return; 9527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin } 10d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes const unsigned long addr = 11d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes regs[PT_USP] + offsetof(struct sigcontext, oldmask); 12a3c483545a7fb3a075f885a01a3c58b2f84db8faDmitry V. Levin 13527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin tprints("{mask="); 1439bac055674d23770b9a724221b728e443196ea7Elliott Hughes print_sigset_addr(tcp, addr); 15527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin tprints("}"); 16527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin} 17