armOS  0.1.0
Minimal ARM Operating System for the Raspberry Pi - Documentation generated for Pi 4.
cpu_context Struct Reference

#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
 

Detailed Description

Structure that contains values of all registers that might be different between the tasks, that are being switched.

Note
For aarch64: We don't save registers 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.
For aarch32: We don't save register r12 because it is a caller-save register, so its value need not be preserved.

Field Documentation

◆ fp

uint64_t cpu_context::fp

Fram Pointer: 64-bit register X29 (Callee-saved)

◆ pc

uint64_t cpu_context::pc

Program Counter

◆ sp

uint64_t cpu_context::sp

Stack Pointer

◆ x19

uint64_t cpu_context::x19

General Purpose 64-bit register X19 (Callee-saved)

◆ x20

uint64_t cpu_context::x20

General Purpose 64-bit register X20 (Callee-saved)

◆ x21

uint64_t cpu_context::x21

General Purpose 64-bit register X21 (Callee-saved)

◆ x22

uint64_t cpu_context::x22

General Purpose 64-bit register X22 (Callee-saved)

◆ x23

uint64_t cpu_context::x23

General Purpose 64-bit register X23 (Callee-saved)

◆ x24

uint64_t cpu_context::x24

General Purpose 64-bit register X24 (Callee-saved)

◆ x25

uint64_t cpu_context::x25

General Purpose 64-bit register X25 (Callee-saved)

◆ x26

uint64_t cpu_context::x26

General Purpose 64-bit register X26 (Callee-saved)

◆ x27

uint64_t cpu_context::x27

General Purpose 64-bit register X27 (Callee-saved)

◆ x28

uint64_t cpu_context::x28

General Purpose 64-bit register X28 (Callee-saved)


The documentation for this struct was generated from the following file: