|
Zephyr Project API 4.4.99
A Scalable Open Source RTOS
|
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 |
| uint32_t | r0 |
| General-purpose register R0. | |
| uint32_t | r1 |
| General-purpose register R1. | |
| uint32_t | r2 |
| General-purpose register R2. | |
| uint32_t | r3 |
| General-purpose register R3. | |
| uint32_t | r4 |
| General-purpose register R4. | |
| uint32_t | r5 |
| General-purpose register R5. | |
| uint32_t | r6 |
| General-purpose register R6. | |
| uint32_t | r7 |
| General-purpose register R7. | |
| uint32_t | r8 |
| General-purpose register R8. | |
| uint32_t | r9 |
| General-purpose register R9. | |
| uint32_t | r10 |
| General-purpose register R10. | |
| uint32_t | r11 |
| General-purpose register R11. | |
| uint32_t | r12 |
| General-purpose register R12. | |
| uint32_t | r13 |
| General-purpose register R13. | |
| uint32_t | r14 |
| General-purpose register R14. | |
| uint32_t | r15 |
| General-purpose register R15. | |
| uint32_t | r16 |
| General-purpose register R16 (callee-saved). | |
| uint32_t | r17 |
| General-purpose register R17 (callee-saved). | |
| uint32_t | r18 |
| General-purpose register R18 (callee-saved). | |
| uint32_t | r19 |
| General-purpose register R19 (callee-saved). | |
| uint32_t | r20 |
| General-purpose register R20 (callee-saved). | |
| uint32_t | r21 |
| General-purpose register R21 (callee-saved). | |
| uint32_t | r22 |
| General-purpose register R22 (callee-saved). | |
| uint32_t | r23 |
| General-purpose register R23 (callee-saved). | |
| uint32_t | r24 |
| General-purpose register R24 (callee-saved). | |
| uint32_t | r25 |
| General-purpose register R25 (callee-saved). | |
| uint32_t | r26 |
| General-purpose register R26 (callee-saved). | |
| uint32_t | r27 |
| General-purpose register R27 (callee-saved). | |
| uint32_t | r28 |
| General-purpose register R28. | |
| uint32_t | r29_sp |
| Stack pointer (R29). | |
| uint32_t | r30_fp |
| Frame pointer (R30). | |
| uint32_t | r31_lr |
| Link register (R31). | |
| uint32_t | pc |
| Program counter. | |
| uint32_t | event_type |
| Event type that triggered this exception. | |
| uint32_t | event_info [4] |
| Event information registers (g0-g3). | |
| 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 | r29 |
| uint32_t | r31 |
| uint32_t | mac_lo |
| uint32_t | mac_hi |
| uint32_t | epcr |
| uint32_t | esr |
| 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 | acc_l |
| uint32_t | acc_h |
| uint32_t | entry_point |
| uint32_t | psw |
| uint32_t | out [8] |
| uint32_t | global [8] |
| uint32_t | psr |
| 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 |
Exception stack frame.
Exception Stack Frame.
Saved register state at the time of an exception or interrupt.
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().
| unsigned long arch_esf::a0 |
| unsigned long arch_esf::a1 |
| unsigned long arch_esf::a2 |
| unsigned long arch_esf::a3 |
| unsigned long arch_esf::a4 |
| unsigned long arch_esf::a5 |
| unsigned long arch_esf::a6 |
| unsigned long arch_esf::a7 |
| uint32_t arch_esf::acc_h |
| uint32_t arch_esf::acc_l |
| unsigned long arch_esf::at |
| unsigned long arch_esf::badvaddr |
| struct arch_esf::__basic_sf arch_esf::basic |
| unsigned long arch_esf::cause |
| unsigned long arch_esf::code |
| unsigned int arch_esf::cs |
| unsigned long arch_esf::cs |
| unsigned int arch_esf::ds |
| uint32_t arch_esf::dummy |
| int arch_esf::dummy |
| unsigned int arch_esf::eax |
| unsigned int arch_esf::ebp |
| unsigned int arch_esf::ebx |
| unsigned int arch_esf::ecx |
| unsigned int arch_esf::edi |
| unsigned int arch_esf::edx |
| unsigned int arch_esf::eflags |
| unsigned int arch_esf::eip |
| uint64_t arch_esf::elr |
| uint32_t arch_esf::entry_point |
| unsigned long arch_esf::epc |
| uint32_t arch_esf::epcr |
| unsigned int arch_esf::errorCode |
| unsigned int arch_esf::es |
| unsigned int arch_esf::esi |
| unsigned int arch_esf::esp |
| uint32_t arch_esf::esr |
| uint32_t arch_esf::event_info[4] |
Event information registers (g0-g3).
| uint32_t arch_esf::event_type |
Event type that triggered this exception.
| struct __fpu_sf arch_esf::fpu |
| unsigned int arch_esf::fs |
| char arch_esf::fxsave[X86_FXSAVE_SIZE] |
| uint32_t arch_esf::global[8] |
| unsigned long arch_esf::gp |
| unsigned int arch_esf::gs |
| unsigned long arch_esf::hi |
| unsigned long arch_esf::lo |
| uint64_t arch_esf::lr |
| uint32_t arch_esf::mac_hi |
| uint32_t arch_esf::mac_lo |
| unsigned long arch_esf::mepc |
| unsigned long arch_esf::mstatus |
| uint32_t arch_esf::npc |
| uint32_t arch_esf::out[8] |
| uint32_t arch_esf::pc |
Program counter.
| uint32_t arch_esf::psr |
| uint32_t arch_esf::psw |
| uint32_t arch_esf::r0 |
General-purpose register R0.
| uint32_t arch_esf::r1 |
General-purpose register R1.
| uint32_t arch_esf::r10 |
General-purpose register R10.
| unsigned long arch_esf::r10 |
| uint32_t arch_esf::r11 |
General-purpose register R11.
| unsigned long arch_esf::r11 |
| uint32_t arch_esf::r12 |
General-purpose register R12.
| uint32_t arch_esf::r13 |
General-purpose register R13.
| uint32_t arch_esf::r14 |
General-purpose register R14.
| uint32_t arch_esf::r15 |
General-purpose register R15.
| uint32_t arch_esf::r16 |
General-purpose register R16 (callee-saved).
| uint32_t arch_esf::r17 |
General-purpose register R17 (callee-saved).
| uint32_t arch_esf::r18 |
General-purpose register R18 (callee-saved).
| uint32_t arch_esf::r19 |
General-purpose register R19 (callee-saved).
| uint32_t arch_esf::r2 |
General-purpose register R2.
| uint32_t arch_esf::r20 |
General-purpose register R20 (callee-saved).
| uint32_t arch_esf::r21 |
General-purpose register R21 (callee-saved).
| uint32_t arch_esf::r22 |
General-purpose register R22 (callee-saved).
| uint32_t arch_esf::r23 |
General-purpose register R23 (callee-saved).
| uint32_t arch_esf::r24 |
General-purpose register R24 (callee-saved).
| uint32_t arch_esf::r25 |
General-purpose register R25 (callee-saved).
| uint32_t arch_esf::r26 |
General-purpose register R26 (callee-saved).
| uint32_t arch_esf::r27 |
General-purpose register R27 (callee-saved).
| uint32_t arch_esf::r28 |
General-purpose register R28.
| uint32_t arch_esf::r29 |
| uint32_t arch_esf::r29_sp |
Stack pointer (R29).
| uint32_t arch_esf::r3 |
General-purpose register R3.
| uint32_t arch_esf::r30_fp |
Frame pointer (R30).
| uint32_t arch_esf::r31 |
| uint32_t arch_esf::r31_lr |
Link register (R31).
| uint32_t arch_esf::r4 |
General-purpose register R4.
| uint32_t arch_esf::r5 |
General-purpose register R5.
| uint32_t arch_esf::r6 |
General-purpose register R6.
| uint32_t arch_esf::r7 |
General-purpose register R7.
| uint32_t arch_esf::r8 |
General-purpose register R8.
| unsigned long arch_esf::r8 |
| uint32_t arch_esf::r9 |
General-purpose register R9.
| unsigned long arch_esf::r9 |
| unsigned long arch_esf::ra |
| unsigned long arch_esf::rax |
| unsigned long arch_esf::rbp |
| unsigned long arch_esf::rcx |
| unsigned long arch_esf::rdi |
| unsigned long arch_esf::rdx |
| unsigned long arch_esf::rflags |
| unsigned long arch_esf::rip |
| unsigned long arch_esf::rsi |
| unsigned long arch_esf::rsp |
| unsigned long arch_esf::s0 |
| unsigned long arch_esf::sp |
| uint64_t arch_esf::spsr |
| unsigned int arch_esf::ss |
| unsigned long arch_esf::ss |
| unsigned long arch_esf::status |
| unsigned long arch_esf::t0 |
| unsigned long arch_esf::t1 |
| unsigned long arch_esf::t2 |
| unsigned long arch_esf::t3 |
| unsigned long arch_esf::t4 |
| unsigned long arch_esf::t5 |
| unsigned long arch_esf::t6 |
| unsigned long arch_esf::t7 |
| unsigned long arch_esf::t8 |
| unsigned long arch_esf::t9 |
| uint32_t arch_esf::tbr |
| unsigned long arch_esf::v0 |
| unsigned long arch_esf::v1 |
| unsigned long arch_esf::vector |
| uint32_t arch_esf::wim |
| uint64_t arch_esf::x0 |
| uint64_t arch_esf::x1 |
| uint64_t arch_esf::x10 |
| uint64_t arch_esf::x11 |
| uint64_t arch_esf::x12 |
| uint64_t arch_esf::x13 |
| uint64_t arch_esf::x14 |
| uint64_t arch_esf::x15 |
| uint64_t arch_esf::x16 |
| uint64_t arch_esf::x17 |
| uint64_t arch_esf::x18 |
| uint64_t arch_esf::x2 |
| uint64_t arch_esf::x3 |
| uint64_t arch_esf::x4 |
| uint64_t arch_esf::x5 |
| uint64_t arch_esf::x6 |
| uint64_t arch_esf::x7 |
| uint64_t arch_esf::x8 |
| uint64_t arch_esf::x9 |
| uint32_t arch_esf::y |