1 /*
2 * Copyright (c) 2016-2021 The strace developers.
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #define arch_set_error arm_set_error
9 #define arch_set_success arm_set_success
10 #include "../arm/set_error.c"
11 #undef arch_set_success
12 #undef arch_set_error
13
14 static int
15 arch_set_error(struct tcb *tcp)
16 {
17 if (aarch64_io.iov_len == sizeof(arm_regs))
18 return arm_set_error(tcp);
19
20 aarch64_regs.regs[0] = -tcp->u_error;
21 return set_regs(tcp->pid);
22 }
23
24 static int
25 arch_set_success(struct tcb *tcp)
26 {
27 if (aarch64_io.iov_len == sizeof(arm_regs))
28 return arm_set_success(tcp);
29
30 aarch64_regs.regs[0] = tcp->u_rval;
31 return set_regs(tcp->pid);
32 }