1 static void arch_sigreturn(struct tcb * tcp)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