xref: /aosp_15_r20/external/strace/linux/aarch64/set_error.c (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
1*cf84ac9aSAndroid Build Coastguard Worker #define arch_set_error arm_set_error
2*cf84ac9aSAndroid Build Coastguard Worker #define arch_set_success arm_set_success
3*cf84ac9aSAndroid Build Coastguard Worker #include "arm/set_error.c"
4*cf84ac9aSAndroid Build Coastguard Worker #undef arch_set_success
5*cf84ac9aSAndroid Build Coastguard Worker #undef arch_set_error
6*cf84ac9aSAndroid Build Coastguard Worker 
7*cf84ac9aSAndroid Build Coastguard Worker static int
arch_set_error(struct tcb * tcp)8*cf84ac9aSAndroid Build Coastguard Worker arch_set_error(struct tcb *tcp)
9*cf84ac9aSAndroid Build Coastguard Worker {
10*cf84ac9aSAndroid Build Coastguard Worker 	if (aarch64_io.iov_len == sizeof(arm_regs))
11*cf84ac9aSAndroid Build Coastguard Worker 		return arm_set_error(tcp);
12*cf84ac9aSAndroid Build Coastguard Worker 
13*cf84ac9aSAndroid Build Coastguard Worker 	aarch64_regs.regs[0] = -tcp->u_error;
14*cf84ac9aSAndroid Build Coastguard Worker 	return set_regs(tcp->pid);
15*cf84ac9aSAndroid Build Coastguard Worker }
16*cf84ac9aSAndroid Build Coastguard Worker 
17*cf84ac9aSAndroid Build Coastguard Worker static int
arch_set_success(struct tcb * tcp)18*cf84ac9aSAndroid Build Coastguard Worker arch_set_success(struct tcb *tcp)
19*cf84ac9aSAndroid Build Coastguard Worker {
20*cf84ac9aSAndroid Build Coastguard Worker 	if (aarch64_io.iov_len == sizeof(arm_regs))
21*cf84ac9aSAndroid Build Coastguard Worker 		return arm_set_success(tcp);
22*cf84ac9aSAndroid Build Coastguard Worker 
23*cf84ac9aSAndroid Build Coastguard Worker 	aarch64_regs.regs[0] = tcp->u_rval;
24*cf84ac9aSAndroid Build Coastguard Worker 	return set_regs(tcp->pid);
25*cf84ac9aSAndroid Build Coastguard Worker }
26