Intel Extensible Firmware Interface User Manual

Page 721

Advertising
background image

Protocols

— Debugger Support

Version 1.10

12/01/02

16-7

NOTE

When the context record field is larger than the register being stored in it, the upper bits of the
context record field are unused and ignored.

// System context for IA-32 processors
typedef struct {
UINT32

ExceptionData;

// ExceptionData is
// additional data pushed
// on the stack by some
// types of IA-32
// exceptions

EFI_FXSAVE_STATE

FxSaveState;

UINT32

Dr0, Dr1, Dr2, Dr3, Dr6, Dr7;

UINT32

Cr0, Cr1 /* Reserved */, Cr2, Cr3, Cr4;

UINT32

Eflags;

UINT32

Ldtr, Tr;

UINT32

Gdtr[2], Idtr[2];

UINT32

Eip;

UINT32

Gs, Fs, Es, Ds, Cs, Ss;

UINT32

Edi, Esi, Ebp, Esp, Ebx, Edx, Ecx, Eax;

} EFI_SYSTEM_CONTEXT_IA32;

// FXSAVE_STATE - FP / MMX / XMM registers
typedef struct {
UINT16

Fcw;

UINT16

Fsw;

UINT16

Ftw;

UINT16

Opcode;

UINT32

Eip;

UINT16

Cs;

UINT16

Reserved1;

UINT32

DataOffset;

UINT16

Ds;

UINT8

Reserved2[10];

UINT8

St0Mm0[10], Reserved3[6];

UINT8

St0Mm1[10], Reserved4[6];

UINT8

St0Mm2[10], Reserved5[6];

UINT8

St0Mm3[10], Reserved6[6];

UINT8

St0Mm4[10], Reserved7[6];

UINT8

St0Mm5[10], Reserved8[6];

UINT8

St0Mm6[10], Reserved9[6];

UINT8

St0Mm7[10], Reserved10[6];

UINT8

Reserved11[22 * 16];

} EFI_FXSAVE_STATE;


Advertising