Denys Vlasenko | b6ef71b | 2015-03-25 15:22:49 +0100 | [diff] [blame] | 1 | /* Retrieve the syscall trap instruction. */ |
2 | unsigned long trap; | ||||
3 | errno = 0; | ||||
4 | trap = ptrace(PTRACE_PEEKTEXT, tcp->pid, (char *)sparc_regs.tpc, 0); | ||||
5 | if (errno) | ||||
6 | return -1; | ||||
7 | trap >>= 32; | ||||
8 | switch (trap) { | ||||
9 | case 0x91d02010: | ||||
10 | /* Linux/SPARC syscall trap. */ | ||||
11 | update_personality(tcp, 0); | ||||
12 | break; | ||||
13 | case 0x91d0206d: | ||||
14 | /* Linux/SPARC64 syscall trap. */ | ||||
15 | update_personality(tcp, 1); | ||||
16 | break; | ||||
17 | } | ||||
18 | |||||
19 | scno = sparc_regs.u_regs[U_REG_G1]; |