1527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levinstatic void 2527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levinarch_sigreturn(struct tcb *tcp) 3527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin{ 4527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin /* TODO: Verify that this is correct... */ 5a3c483545a7fb3a075f885a01a3c58b2f84db8faDmitry V. Levin 6d35df493b4e7684c50d2d2fa032ee3a7ac228009Elliott Hughes unsigned long addr; 7a3c483545a7fb3a075f885a01a3c58b2f84db8faDmitry V. Levin 8527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin /* Read r1, the stack pointer. */ 9b755614143ce6aab5265ed32c1bb6c8f748e7898Elliott Hughes if (upeek(tcp, 1 * 4, &addr) < 0) 10527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin return; 11527b42ff8da3f52fa7c48eb766b2b57fb0f0b977Dmitry V. Levin addr += 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