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_EXPCEPTION_H_ 10 : #define ZEPHYR_INCLUDE_ARCH_MIPS_EXPCEPTION_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_EXPCEPTION_H_ */