Stores the registers and PC for a context switch. More...
Stores the registers and PC for a context switch.
This also defines context_switch_frame offsets for assembly language. The structure is sized to maintain 16 byte stack alignment per the ABI. https://github.com/riscv/riscv-elf-psabi-doc
Definition at line 36 of file context_frame.h.
#include <context_frame.h>
Data Fields | |
| uint32_t | s0 | 
| s0 register   | |
| uint32_t | s1 | 
| s1 register   | |
| uint32_t | s2 | 
| s2 register   | |
| uint32_t | s3 | 
| s3 register   | |
| uint32_t | s4 | 
| s4 register   | |
| uint32_t | s5 | 
| s5 register   | |
| uint32_t | s6 | 
| s6 register   | |
| uint32_t | s7 | 
| s7 register   | |
| uint32_t | s8 | 
| s8 register   | |
| uint32_t | s9 | 
| s9 register   | |
| uint32_t | s10 | 
| s10 register   | |
| uint32_t | s11 | 
| s11 register   | |
| uint32_t | ra | 
| ra register   | |
| uint32_t | t0 | 
| t0 register   | |
| uint32_t | t1 | 
| t1 register   | |
| uint32_t | t2 | 
| t2 register   | |
| uint32_t | t3 | 
| t3 register   | |
| uint32_t | t4 | 
| t4 register   | |
| uint32_t | t5 | 
| t5 register   | |
| uint32_t | t6 | 
| t6 register   | |
| uint32_t | a0 | 
| a0 register   | |
| uint32_t | a1 | 
| a1 register   | |
| uint32_t | a2 | 
| a2 register   | |
| uint32_t | a3 | 
| a3 register   | |
| uint32_t | a4 | 
| a4 register   | |
| uint32_t | a5 | 
| a5 register   | |
| uint32_t | a6 | 
| a6 register   | |
| uint32_t | a7 | 
| a7 register   | |
| uint32_t | pc | 
| program counter   | |
| uint32_t | pad [3] | 
| padding to maintain 16 byte alignment   | |
| uint32_t context_switch_frame::a0 | 
a0 register
Definition at line 59 of file context_frame.h.
| uint32_t context_switch_frame::a1 | 
a1 register
Definition at line 60 of file context_frame.h.
| uint32_t context_switch_frame::a2 | 
a2 register
Definition at line 61 of file context_frame.h.
| uint32_t context_switch_frame::a3 | 
a3 register
Definition at line 62 of file context_frame.h.
| uint32_t context_switch_frame::a4 | 
a4 register
Definition at line 63 of file context_frame.h.
| uint32_t context_switch_frame::a5 | 
a5 register
Definition at line 64 of file context_frame.h.
| uint32_t context_switch_frame::a6 | 
a6 register
Definition at line 65 of file context_frame.h.
| uint32_t context_switch_frame::a7 | 
a7 register
Definition at line 66 of file context_frame.h.
| uint32_t context_switch_frame::pad[3] | 
padding to maintain 16 byte alignment
Definition at line 69 of file context_frame.h.
| uint32_t context_switch_frame::pc | 
program counter
Definition at line 68 of file context_frame.h.
| uint32_t context_switch_frame::ra | 
ra register
Definition at line 51 of file context_frame.h.
| uint32_t context_switch_frame::s0 | 
s0 register
Definition at line 38 of file context_frame.h.
| uint32_t context_switch_frame::s1 | 
s1 register
Definition at line 39 of file context_frame.h.
| uint32_t context_switch_frame::s10 | 
s10 register
Definition at line 48 of file context_frame.h.
| uint32_t context_switch_frame::s11 | 
s11 register
Definition at line 49 of file context_frame.h.
| uint32_t context_switch_frame::s2 | 
s2 register
Definition at line 40 of file context_frame.h.
| uint32_t context_switch_frame::s3 | 
s3 register
Definition at line 41 of file context_frame.h.
| uint32_t context_switch_frame::s4 | 
s4 register
Definition at line 42 of file context_frame.h.
| uint32_t context_switch_frame::s5 | 
s5 register
Definition at line 43 of file context_frame.h.
| uint32_t context_switch_frame::s6 | 
s6 register
Definition at line 44 of file context_frame.h.
| uint32_t context_switch_frame::s7 | 
s7 register
Definition at line 45 of file context_frame.h.
| uint32_t context_switch_frame::s8 | 
s8 register
Definition at line 46 of file context_frame.h.
| uint32_t context_switch_frame::s9 | 
s9 register
Definition at line 47 of file context_frame.h.
| uint32_t context_switch_frame::t0 | 
t0 register
Definition at line 52 of file context_frame.h.
| uint32_t context_switch_frame::t1 | 
t1 register
Definition at line 53 of file context_frame.h.
| uint32_t context_switch_frame::t2 | 
t2 register
Definition at line 54 of file context_frame.h.
| uint32_t context_switch_frame::t3 | 
t3 register
Definition at line 55 of file context_frame.h.
| uint32_t context_switch_frame::t4 | 
t4 register
Definition at line 56 of file context_frame.h.
| uint32_t context_switch_frame::t5 | 
t5 register
Definition at line 57 of file context_frame.h.
| uint32_t context_switch_frame::t6 | 
t6 register
Definition at line 58 of file context_frame.h.