1 /*
2  * Copyright (c) 2016 Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef ZEPHYR_INCLUDE_ARCH_NIOS2_EXPCEPTION_H_
8 #define ZEPHYR_INCLUDE_ARCH_NIOS2_EXPCEPTION_H_
9 
10 #ifndef _ASMLANGUAGE
11 #include <zephyr/types.h>
12 
13 #ifdef __cplusplus
14 extern "C" {
15 #endif
16 
17 struct arch_esf {
18 	uint32_t ra; /* return address r31 */
19 	uint32_t r1; /* at */
20 	uint32_t r2; /* return value */
21 	uint32_t r3; /* return value */
22 	uint32_t r4; /* register args */
23 	uint32_t r5; /* register args */
24 	uint32_t r6; /* register args */
25 	uint32_t r7; /* register args */
26 	uint32_t r8; /* Caller-saved general purpose */
27 	uint32_t r9; /* Caller-saved general purpose */
28 	uint32_t r10; /* Caller-saved general purpose */
29 	uint32_t r11; /* Caller-saved general purpose */
30 	uint32_t r12; /* Caller-saved general purpose */
31 	uint32_t r13; /* Caller-saved general purpose */
32 	uint32_t r14; /* Caller-saved general purpose */
33 	uint32_t r15; /* Caller-saved general purpose */
34 	uint32_t estatus;
35 	uint32_t instr; /* Instruction being executed when exc occurred */
36 };
37 
38 #ifdef __cplusplus
39 }
40 #endif
41 
42 #endif /* _ASMLANGUAGE */
43 
44 #endif /* ZEPHYR_INCLUDE_ARCH_NIOS2_EXPCEPTION_H_ */
45