Line data Source code
1 0 : /*
2 : * Copyright (c) 2021 Antony Pavlov <antonynpavlov@gmail.com>
3 : *
4 : * based on include/arch/riscv/exception.h
5 : *
6 : * SPDX-License-Identifier: Apache-2.0
7 : */
8 :
9 : #ifndef ZEPHYR_INCLUDE_ARCH_MIPS_EXCEPTION_H_
10 : #define ZEPHYR_INCLUDE_ARCH_MIPS_EXCEPTION_H_
11 :
12 : #ifndef _ASMLANGUAGE
13 : #include <zephyr/types.h>
14 : #include <zephyr/toolchain.h>
15 :
16 : #ifdef __cplusplus
17 : extern "C" {
18 : #endif
19 :
20 : struct arch_esf {
21 0 : unsigned long ra; /* return address */
22 0 : unsigned long gp; /* global pointer */
23 :
24 0 : unsigned long t0; /* Caller-saved temporary register */
25 0 : unsigned long t1; /* Caller-saved temporary register */
26 0 : unsigned long t2; /* Caller-saved temporary register */
27 0 : unsigned long t3; /* Caller-saved temporary register */
28 0 : unsigned long t4; /* Caller-saved temporary register */
29 0 : unsigned long t5; /* Caller-saved temporary register */
30 0 : unsigned long t6; /* Caller-saved temporary register */
31 0 : unsigned long t7; /* Caller-saved temporary register */
32 0 : unsigned long t8; /* Caller-saved temporary register */
33 0 : unsigned long t9; /* Caller-saved temporary register */
34 :
35 0 : unsigned long a0; /* function argument */
36 0 : unsigned long a1; /* function argument */
37 0 : unsigned long a2; /* function argument */
38 0 : unsigned long a3; /* function argument */
39 :
40 0 : unsigned long v0; /* return value */
41 0 : unsigned long v1; /* return value */
42 :
43 0 : unsigned long at; /* assembly temporary */
44 :
45 0 : unsigned long epc;
46 0 : unsigned long badvaddr;
47 0 : unsigned long hi;
48 0 : unsigned long lo;
49 0 : unsigned long status;
50 0 : unsigned long cause;
51 : };
52 :
53 : #ifdef __cplusplus
54 : }
55 : #endif
56 :
57 : #endif /* _ASMLANGUAGE */
58 :
59 : #endif /* ZEPHYR_INCLUDE_ARCH_MIPS_EXCEPTION_H_ */
|