Zephyr Project API 4.0.0
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
arch_esf Struct Reference

Exception Stack Frame. More...

#include <exception.h>

Data Structures

struct  __basic_sf
 

Data Fields

struct __fpu_sf fpu
 
struct arch_esf::__basic_sf basic
 
uint64_t x0
 
uint64_t x1
 
uint64_t x2
 
uint64_t x3
 
uint64_t x4
 
uint64_t x5
 
uint64_t x6
 
uint64_t x7
 
uint64_t x8
 
uint64_t x9
 
uint64_t x10
 
uint64_t x11
 
uint64_t x12
 
uint64_t x13
 
uint64_t x14
 
uint64_t x15
 
uint64_t x16
 
uint64_t x17
 
uint64_t x18
 
uint64_t lr
 
uint64_t spsr
 
uint64_t elr
 
unsigned long ra
 
unsigned long gp
 
unsigned long t0
 
unsigned long t1
 
unsigned long t2
 
unsigned long t3
 
unsigned long t4
 
unsigned long t5
 
unsigned long t6
 
unsigned long t7
 
unsigned long t8
 
unsigned long t9
 
unsigned long a0
 
unsigned long a1
 
unsigned long a2
 
unsigned long a3
 
unsigned long v0
 
unsigned long v1
 
unsigned long at
 
unsigned long epc
 
unsigned long badvaddr
 
unsigned long hi
 
unsigned long lo
 
unsigned long status
 
unsigned long cause
 
uint32_t ra
 
uint32_t r1
 
uint32_t r2
 
uint32_t r3
 
uint32_t r4
 
uint32_t r5
 
uint32_t r6
 
uint32_t r7
 
uint32_t r8
 
uint32_t r9
 
uint32_t r10
 
uint32_t r11
 
uint32_t r12
 
uint32_t r13
 
uint32_t r14
 
uint32_t r15
 
uint32_t estatus
 
uint32_t instr
 
uint32_t dummy
 
unsigned long a4
 
unsigned long a5
 
unsigned long a6
 
unsigned long a7
 
unsigned long mepc
 
unsigned long mstatus
 
unsigned long s0
 
unsigned long sp
 
uint32_t out [8]
 
uint32_t global [8]
 
uint32_t psr
 
uint32_t pc
 
uint32_t npc
 
uint32_t wim
 
uint32_t tbr
 
uint32_t y
 
unsigned int ss
 
unsigned int gs
 
unsigned int fs
 
unsigned int es
 
unsigned int ds
 
unsigned int esp
 
unsigned int ebp
 
unsigned int ebx
 
unsigned int esi
 
unsigned int edi
 
unsigned int edx
 
unsigned int eax
 
unsigned int ecx
 
unsigned int errorCode
 
unsigned int eip
 
unsigned int cs
 
unsigned int eflags
 
unsigned long rbp
 
unsigned long rax
 
unsigned long rcx
 
unsigned long rdx
 
unsigned long rsi
 
unsigned long rdi
 
unsigned long r8
 
unsigned long r9
 
unsigned long r10
 
char fxsave [X86_FXSAVE_SIZE]
 
unsigned long r11
 
unsigned long vector
 
unsigned long code
 
unsigned long rip
 
unsigned long cs
 
unsigned long rflags
 
unsigned long rsp
 
unsigned long ss
 
int dummy
 

Detailed Description

Exception Stack Frame.

A pointer to an "exception stack frame" (ESF) is passed as an argument to exception handlers registered via nanoCpuExcConnect(). As the system always operates at ring 0, only the EIP, CS and EFLAGS registers are pushed onto the stack when an exception occurs.

The exception stack frame includes the volatile registers (EAX, ECX, and EDX) as well as the 5 non-volatile registers (EDI, ESI, EBX, EBP and ESP). Those registers are pushed onto the stack by _ExcEnt().

Field Documentation

◆ a0

unsigned long arch_esf::a0

◆ a1

unsigned long arch_esf::a1

◆ a2

unsigned long arch_esf::a2

◆ a3

unsigned long arch_esf::a3

◆ a4

unsigned long arch_esf::a4

◆ a5

unsigned long arch_esf::a5

◆ a6

unsigned long arch_esf::a6

◆ a7

unsigned long arch_esf::a7

◆ at

unsigned long arch_esf::at

◆ badvaddr

unsigned long arch_esf::badvaddr

◆ basic

struct arch_esf::__basic_sf arch_esf::basic

◆ cause

unsigned long arch_esf::cause

◆ code

unsigned long arch_esf::code

◆ cs [1/2]

unsigned int arch_esf::cs

◆ cs [2/2]

unsigned long arch_esf::cs

◆ ds

unsigned int arch_esf::ds

◆ dummy [1/2]

uint32_t arch_esf::dummy

◆ dummy [2/2]

int arch_esf::dummy

◆ eax

unsigned int arch_esf::eax

◆ ebp

unsigned int arch_esf::ebp

◆ ebx

unsigned int arch_esf::ebx

◆ ecx

unsigned int arch_esf::ecx

◆ edi

unsigned int arch_esf::edi

◆ edx

unsigned int arch_esf::edx

◆ eflags

unsigned int arch_esf::eflags

◆ eip

unsigned int arch_esf::eip

◆ elr

uint64_t arch_esf::elr

◆ epc

unsigned long arch_esf::epc

◆ errorCode

unsigned int arch_esf::errorCode

◆ es

unsigned int arch_esf::es

◆ esi

unsigned int arch_esf::esi

◆ esp

unsigned int arch_esf::esp

◆ estatus

uint32_t arch_esf::estatus

◆ fpu

struct __fpu_sf arch_esf::fpu

◆ fs

unsigned int arch_esf::fs

◆ fxsave

char arch_esf::fxsave[X86_FXSAVE_SIZE]

◆ global

uint32_t arch_esf::global[8]

◆ gp

unsigned long arch_esf::gp

◆ gs

unsigned int arch_esf::gs

◆ hi

unsigned long arch_esf::hi

◆ instr

uint32_t arch_esf::instr

◆ lo

unsigned long arch_esf::lo

◆ lr

uint64_t arch_esf::lr

◆ mepc

unsigned long arch_esf::mepc

◆ mstatus

unsigned long arch_esf::mstatus

◆ npc

uint32_t arch_esf::npc

◆ out

uint32_t arch_esf::out[8]

◆ pc

uint32_t arch_esf::pc

◆ psr

uint32_t arch_esf::psr

◆ r1

uint32_t arch_esf::r1

◆ r10 [1/2]

uint32_t arch_esf::r10

◆ r10 [2/2]

unsigned long arch_esf::r10

◆ r11 [1/2]

uint32_t arch_esf::r11

◆ r11 [2/2]

unsigned long arch_esf::r11

◆ r12

uint32_t arch_esf::r12

◆ r13

uint32_t arch_esf::r13

◆ r14

uint32_t arch_esf::r14

◆ r15

uint32_t arch_esf::r15

◆ r2

uint32_t arch_esf::r2

◆ r3

uint32_t arch_esf::r3

◆ r4

uint32_t arch_esf::r4

◆ r5

uint32_t arch_esf::r5

◆ r6

uint32_t arch_esf::r6

◆ r7

uint32_t arch_esf::r7

◆ r8 [1/2]

uint32_t arch_esf::r8

◆ r8 [2/2]

unsigned long arch_esf::r8

◆ r9 [1/2]

uint32_t arch_esf::r9

◆ r9 [2/2]

unsigned long arch_esf::r9

◆ ra [1/2]

unsigned long arch_esf::ra

◆ ra [2/2]

uint32_t arch_esf::ra

◆ rax

unsigned long arch_esf::rax

◆ rbp

unsigned long arch_esf::rbp

◆ rcx

unsigned long arch_esf::rcx

◆ rdi

unsigned long arch_esf::rdi

◆ rdx

unsigned long arch_esf::rdx

◆ rflags

unsigned long arch_esf::rflags

◆ rip

unsigned long arch_esf::rip

◆ rsi

unsigned long arch_esf::rsi

◆ rsp

unsigned long arch_esf::rsp

◆ s0

unsigned long arch_esf::s0

◆ sp

unsigned long arch_esf::sp

◆ spsr

uint64_t arch_esf::spsr

◆ ss [1/2]

unsigned int arch_esf::ss

◆ ss [2/2]

unsigned long arch_esf::ss

◆ status

unsigned long arch_esf::status

◆ t0

unsigned long arch_esf::t0

◆ t1

unsigned long arch_esf::t1

◆ t2

unsigned long arch_esf::t2

◆ t3

unsigned long arch_esf::t3

◆ t4

unsigned long arch_esf::t4

◆ t5

unsigned long arch_esf::t5

◆ t6

unsigned long arch_esf::t6

◆ t7

unsigned long arch_esf::t7

◆ t8

unsigned long arch_esf::t8

◆ t9

unsigned long arch_esf::t9

◆ tbr

uint32_t arch_esf::tbr

◆ v0

unsigned long arch_esf::v0

◆ v1

unsigned long arch_esf::v1

◆ vector

unsigned long arch_esf::vector

◆ wim

uint32_t arch_esf::wim

◆ x0

uint64_t arch_esf::x0

◆ x1

uint64_t arch_esf::x1

◆ x10

uint64_t arch_esf::x10

◆ x11

uint64_t arch_esf::x11

◆ x12

uint64_t arch_esf::x12

◆ x13

uint64_t arch_esf::x13

◆ x14

uint64_t arch_esf::x14

◆ x15

uint64_t arch_esf::x15

◆ x16

uint64_t arch_esf::x16

◆ x17

uint64_t arch_esf::x17

◆ x18

uint64_t arch_esf::x18

◆ x2

uint64_t arch_esf::x2

◆ x3

uint64_t arch_esf::x3

◆ x4

uint64_t arch_esf::x4

◆ x5

uint64_t arch_esf::x5

◆ x6

uint64_t arch_esf::x6

◆ x7

uint64_t arch_esf::x7

◆ x8

uint64_t arch_esf::x8

◆ x9

uint64_t arch_esf::x9

◆ y

uint32_t arch_esf::y

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