Zephyr API Documentation  3.0.0
A Scalable Open Source RTOS
3.0.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
exp.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2021 Antony Pavlov <antonynpavlov@gmail.com>
3 *
4 * based on include/arch/riscv/exp.h
5 *
6 * SPDX-License-Identifier: Apache-2.0
7 */
8
9#ifndef ZEPHYR_INCLUDE_ARCH_MIPS_EXP_H_
10#define ZEPHYR_INCLUDE_ARCH_MIPS_EXP_H_
11
12#ifndef _ASMLANGUAGE
13#include <zephyr/types.h>
14#include <toolchain.h>
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20struct __esf {
21 ulong_t ra; /* return address */
22 ulong_t gp; /* global pointer */
23
24 ulong_t t0; /* Caller-saved temporary register */
25 ulong_t t1; /* Caller-saved temporary register */
26 ulong_t t2; /* Caller-saved temporary register */
27 ulong_t t3; /* Caller-saved temporary register */
28 ulong_t t4; /* Caller-saved temporary register */
29 ulong_t t5; /* Caller-saved temporary register */
30 ulong_t t6; /* Caller-saved temporary register */
31 ulong_t t7; /* Caller-saved temporary register */
32 ulong_t t8; /* Caller-saved temporary register */
33 ulong_t t9; /* Caller-saved temporary register */
34
35 ulong_t a0; /* function argument */
36 ulong_t a1; /* function argument */
37 ulong_t a2; /* function argument */
38 ulong_t a3; /* function argument */
39
40 ulong_t v0; /* return value */
41 ulong_t v1; /* return value */
42
43 ulong_t at; /* assembly temporary */
44
45 ulong_t epc;
46 ulong_t badvaddr;
47 ulong_t hi;
48 ulong_t lo;
49 ulong_t status;
50 ulong_t cause;
51};
52
53typedef struct __esf z_arch_esf_t;
54
55#ifdef __cplusplus
56}
57#endif
58
59#endif /* _ASMLANGUAGE */
60
61#endif /* ZEPHYR_INCLUDE_ARCH_MIPS_EXP_H_ */
irp hi
Definition: asm-macro-32-bit-gnu.h:10
unsigned long ulong_t
Definition: types.h:18
struct k_thread t2
Definition: main.c:27
Macros to abstract toolchain specific capabilities.