1*cf84ac9aSAndroid Build Coastguard Worker #ifndef PTRACE_SET_SYSCALL 2*cf84ac9aSAndroid Build Coastguard Worker # define PTRACE_SET_SYSCALL 23 3*cf84ac9aSAndroid Build Coastguard Worker #endif 4*cf84ac9aSAndroid Build Coastguard Worker /* 5*cf84ac9aSAndroid Build Coastguard Worker * PTRACE_SET_SYSCALL is supported by linux kernel 6*cf84ac9aSAndroid Build Coastguard Worker * starting with commit v2.6.16-rc1~107^2 7*cf84ac9aSAndroid Build Coastguard Worker */ 8*cf84ac9aSAndroid Build Coastguard Worker 9*cf84ac9aSAndroid Build Coastguard Worker static int arch_set_scno(struct tcb * tcp,kernel_ulong_t scno)10*cf84ac9aSAndroid Build Coastguard Workerarch_set_scno(struct tcb *tcp, kernel_ulong_t scno) 11*cf84ac9aSAndroid Build Coastguard Worker { 12*cf84ac9aSAndroid Build Coastguard Worker unsigned int n = (uint16_t) scno; 13*cf84ac9aSAndroid Build Coastguard Worker int rc = ptrace(PTRACE_SET_SYSCALL, tcp->pid, NULL, (unsigned long) n); 14*cf84ac9aSAndroid Build Coastguard Worker if (rc && errno != ESRCH) 15*cf84ac9aSAndroid Build Coastguard Worker perror_msg("arch_set_scno: PTRACE_SET_SYSCALL pid:%d scno:%#x", 16*cf84ac9aSAndroid Build Coastguard Worker tcp->pid, n); 17*cf84ac9aSAndroid Build Coastguard Worker return rc; 18*cf84ac9aSAndroid Build Coastguard Worker } 19