Zephyr API Documentation
3.6.99
A Scalable Open Source RTOS
|
Exception Stack Frame. More...
#include <arch.h>
Data Fields | |
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 |
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().
unsigned int nanoEsf::cs |
unsigned int nanoEsf::ds |
unsigned int nanoEsf::eax |
unsigned int nanoEsf::ebp |
unsigned int nanoEsf::ebx |
unsigned int nanoEsf::ecx |
unsigned int nanoEsf::edi |
unsigned int nanoEsf::edx |
unsigned int nanoEsf::eflags |
unsigned int nanoEsf::eip |
unsigned int nanoEsf::errorCode |
unsigned int nanoEsf::es |
unsigned int nanoEsf::esi |
unsigned int nanoEsf::esp |
unsigned int nanoEsf::fs |
unsigned int nanoEsf::gs |
unsigned int nanoEsf::ss |