1static void 2arch_sigreturn(struct tcb *tcp) 3{ 4 unsigned long addr = ppc_regs.gpr[1]; 5 struct sigcontext sc; 6 7 /* Skip dummy stack frame. */ 8#ifdef POWERPC64 9 if (current_personality == 0) 10 addr += 128; 11 else 12#endif 13 addr += 64; 14 15 if (umove(tcp, addr, &sc) < 0) { 16 tprintf("{mask=%#lx}", addr); 17 } else { 18 unsigned long mask[NSIG_BYTES / sizeof(long)]; 19#ifdef POWERPC64 20 mask[0] = sc.oldmask | (sc._unused[3] << 32); 21#else 22 mask[0] = sc.oldmask; 23 mask[1] = sc._unused[3]; 24#endif 25 tprintsigmask_addr("{mask=", mask); 26 tprints("}"); 27 } 28} 29