xref: /aosp_15_r20/external/strace/linux/mips/get_scno.c (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
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 Worker arch_get_scno(struct tcb *tcp)
4*cf84ac9aSAndroid Build Coastguard Worker {
5*cf84ac9aSAndroid Build Coastguard Worker 	tcp->scno = mips_REG_V0;
6*cf84ac9aSAndroid Build Coastguard Worker 
7*cf84ac9aSAndroid Build Coastguard Worker 	if (!scno_in_range(tcp->scno)) {
8*cf84ac9aSAndroid Build Coastguard Worker 		if (mips_REG_A3 == 0 || mips_REG_A3 == (uint64_t) -1) {
9*cf84ac9aSAndroid Build Coastguard Worker 			if (debug_flag)
10*cf84ac9aSAndroid Build Coastguard Worker 				error_msg("stray syscall exit: v0 = %ld",
11*cf84ac9aSAndroid Build Coastguard Worker 					  tcp->scno);
12*cf84ac9aSAndroid Build Coastguard Worker 			return 0;
13*cf84ac9aSAndroid Build Coastguard Worker 		}
14*cf84ac9aSAndroid Build Coastguard Worker 	}
15*cf84ac9aSAndroid Build Coastguard Worker 
16*cf84ac9aSAndroid Build Coastguard Worker 	return 1;
17*cf84ac9aSAndroid Build Coastguard Worker }
18