Home | History | Annotate | Download | only in powerpc
      1 static void
      2 arch_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