1*cf84ac9aSAndroid Build Coastguard Worker /* Return codes: 1 - ok, 0 - ignore, other - error. */ 2*cf84ac9aSAndroid Build Coastguard Worker static int arch_get_scno(struct tcb * tcp)3*cf84ac9aSAndroid Build Coastguard Workerarch_get_scno(struct tcb *tcp) 4*cf84ac9aSAndroid Build Coastguard Worker { 5*cf84ac9aSAndroid Build Coastguard Worker kernel_ulong_t scno = 0; 6*cf84ac9aSAndroid Build Coastguard Worker 7*cf84ac9aSAndroid Build Coastguard Worker switch (aarch64_io.iov_len) { 8*cf84ac9aSAndroid Build Coastguard Worker case sizeof(aarch64_regs): 9*cf84ac9aSAndroid Build Coastguard Worker /* We are in 64-bit mode */ 10*cf84ac9aSAndroid Build Coastguard Worker scno = aarch64_regs.regs[8]; 11*cf84ac9aSAndroid Build Coastguard Worker break; 12*cf84ac9aSAndroid Build Coastguard Worker case sizeof(arm_regs): 13*cf84ac9aSAndroid Build Coastguard Worker /* We are in 32-bit mode */ 14*cf84ac9aSAndroid Build Coastguard Worker /* Note: we don't support OABI, unlike 32-bit ARM build */ 15*cf84ac9aSAndroid Build Coastguard Worker scno = arm_regs.ARM_r7; 16*cf84ac9aSAndroid Build Coastguard Worker break; 17*cf84ac9aSAndroid Build Coastguard Worker } 18*cf84ac9aSAndroid Build Coastguard Worker 19*cf84ac9aSAndroid Build Coastguard Worker tcp->scno = scno; 20*cf84ac9aSAndroid Build Coastguard Worker return 1; 21*cf84ac9aSAndroid Build Coastguard Worker } 22