summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/riscv/include/rtems/score/cpu.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/riscv/include/rtems/score/cpu.h')
-rw-r--r--cpukit/score/cpu/riscv/include/rtems/score/cpu.h26
1 files changed, 20 insertions, 6 deletions
diff --git a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h
index 61d3ffa3f7..888de27e8e 100644
--- a/cpukit/score/cpu/riscv/include/rtems/score/cpu.h
+++ b/cpukit/score/cpu/riscv/include/rtems/score/cpu.h
@@ -105,17 +105,31 @@ extern "C" {
#ifndef ASM
typedef struct {
- /* riscv has 32 xlen-bit (where xlen can be 32 or 64) general purpose registers (x0-x31)*/
- unsigned long x[32];
-
- uint32_t isr_dispatch_disable;
#ifdef RTEMS_SMP
- volatile bool is_executing;
+ volatile uint32_t is_executing;
+#else
+ uint32_t reserved;
#endif
+ uint32_t isr_dispatch_disable;
+ uintptr_t ra;
+ uintptr_t sp;
+ uintptr_t tp;
+ uintptr_t s0;
+ uintptr_t s1;
+ uintptr_t s2;
+ uintptr_t s3;
+ uintptr_t s4;
+ uintptr_t s5;
+ uintptr_t s6;
+ uintptr_t s7;
+ uintptr_t s8;
+ uintptr_t s9;
+ uintptr_t s10;
+ uintptr_t s11;
} Context_Control;
#define _CPU_Context_Get_SP( _context ) \
- (_context)->x[2]
+ (_context)->sp
typedef struct {
/** TODO FPU registers are listed here */