#include <scheduler.h>
Data Fields | |
| uint64_t | x19 |
| uint64_t | x20 |
| uint64_t | x21 |
| uint64_t | x22 |
| uint64_t | x23 |
| uint64_t | x24 |
| uint64_t | x25 |
| uint64_t | x26 |
| uint64_t | x27 |
| uint64_t | x28 |
| uint64_t | fp |
| uint64_t | sp |
| uint64_t | pc |
Structure that contains values of all registers that might be different between the tasks, that are being switched.
x0 - x18 becuase they can be overwritten by the called function, so the caller must not assume that the values of those registers will survive after a function call. r12 because it is a caller-save register, so its value need not be preserved. | uint64_t cpu_context::fp |
Fram Pointer: 64-bit register X29 (Callee-saved)
| uint64_t cpu_context::pc |
Program Counter
| uint64_t cpu_context::sp |
Stack Pointer
| uint64_t cpu_context::x19 |
General Purpose 64-bit register X19 (Callee-saved)
| uint64_t cpu_context::x20 |
General Purpose 64-bit register X20 (Callee-saved)
| uint64_t cpu_context::x21 |
General Purpose 64-bit register X21 (Callee-saved)
| uint64_t cpu_context::x22 |
General Purpose 64-bit register X22 (Callee-saved)
| uint64_t cpu_context::x23 |
General Purpose 64-bit register X23 (Callee-saved)
| uint64_t cpu_context::x24 |
General Purpose 64-bit register X24 (Callee-saved)
| uint64_t cpu_context::x25 |
General Purpose 64-bit register X25 (Callee-saved)
| uint64_t cpu_context::x26 |
General Purpose 64-bit register X26 (Callee-saved)
| uint64_t cpu_context::x27 |
General Purpose 64-bit register X27 (Callee-saved)
| uint64_t cpu_context::x28 |
General Purpose 64-bit register X28 (Callee-saved)