blob: cde4444188b7fca0b802eb6a50152bd97af8edc7 [file] [log] [blame]
Denys Vlasenko430143b2015-03-24 19:39:47 +01001#ifdef SPARC64
Dmitry V. Levind70d1c42015-03-22 22:13:55 +00002/* Retrieve the syscall trap instruction. */
3unsigned long trap;
Dmitry V. Levind70d1c42015-03-22 22:13:55 +00004errno = 0;
Dmitry V. Levind70d1c42015-03-22 22:13:55 +00005trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)sparc_regs.tpc, 0);
Dmitry V. Levind70d1c42015-03-22 22:13:55 +00006if (errno)
7 return -1;
Denys Vlasenko430143b2015-03-24 19:39:47 +01008trap >>= 32;
Dmitry V. Levind70d1c42015-03-22 22:13:55 +00009switch (trap) {
10case 0x91d02010:
11 /* Linux/SPARC syscall trap. */
12 update_personality(tcp, 0);
13 break;
14case 0x91d0206d:
15 /* Linux/SPARC64 syscall trap. */
16 update_personality(tcp, 2);
17 break;
Denys Vlasenko430143b2015-03-24 19:39:47 +010018}
Dmitry V. Levind70d1c42015-03-22 22:13:55 +000019#endif
Dmitry V. Levind70d1c42015-03-22 22:13:55 +000020
Denys Vlasenko430143b2015-03-24 19:39:47 +010021scno = sparc_regs.u_regs[U_REG_G1];