1 /*
2 * Copyright (c) 2021 The strace developers.
3 * All rights reserved.
4 *
5 * SPDX-License-Identifier: LGPL-2.1-or-later
6 */
7
8 #include "ptrace.h"
9
10 static void
11 arch_decode_pt_regs(struct tcb *const tcp, const kernel_ulong_t addr)
12 {
13 struct pt_regs regs;
14
15 if (umove_or_printaddr(tcp, addr, ®s))
16 return;
17
18 tprint_struct_begin();
19 PRINT_FIELD_ARRAY(regs, regs, tcp, print_xint_array_member);
20
21 tprint_struct_next();
22 PRINT_FIELD_X(regs, lo);
23
24 tprint_struct_next();
25 PRINT_FIELD_X(regs, hi);
26
27 tprint_struct_next();
28 PRINT_FIELD_X(regs, cp0_epc);
29
30 tprint_struct_next();
31 PRINT_FIELD_X(regs, cp0_badvaddr);
32
33 tprint_struct_next();
34 PRINT_FIELD_X(regs, cp0_status);
35
36 tprint_struct_next();
37 PRINT_FIELD_X(regs, cp0_cause);
38
39 tprint_struct_end();
40 }