1 static void arch_sigreturn(struct tcb * tcp)2arch_sigreturn(struct tcb *tcp) 3 { 4 long esp = ppc_regs.gpr[1]; 5 struct sigcontext sc; 6 7 /* Skip dummy stack frame. */ 8 #ifdef POWERPC64 9 if (current_personality == 0) 10 esp += 128; 11 else 12 #endif 13 esp += 64; 14 15 if (umove(tcp, esp, &sc) < 0) { 16 tprintf("{mask=%#lx}", esp); 17 } else { 18 unsigned long mask[NSIG / 8 / 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