8#ifndef _EFI_EDB_COMMON_H_
9#define _EFI_EDB_COMMON_H_
28typedef UINTN EFI_DEBUG_STATUS;
37(*EFI_DEBUGGER_COMMAND) (
38 IN CHAR16 *CommandArg,
48 CHAR16 *CommandSyntax;
51 EFI_DEBUGGER_COMMAND CommandFunc;
57#define EFI_DEBUGGER_SYMBOL_NAME_MAX 256
58#define EFI_DEBUGGER_SYMBOL_ENTRY_MAX 512
59#define EFI_DEBUGGER_SYMBOL_OBJECT_MAX 32
76 EfiDebuggerSymbolFunction,
77 EfiDebuggerSymbolStaticFunction,
78 EfiDebuggerSymbolGlobalVariable,
79 EfiDebuggerSymbolStaticVariable,
80 EfiDebuggerSymbolTypeMax,
81} EFI_DEBUGGER_SYMBOL_TYPE;
84 CHAR8 Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
86 EFI_DEBUGGER_SYMBOL_TYPE Type;
87 CHAR8 ObjName[EFI_DEBUGGER_SYMBOL_NAME_MAX];
95 CHAR16 Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
99 UINTN StartEntrypointRVA;
100 UINTN MainEntrypointRVA;
107 UINTN MaxObjectCount;
109 BOOLEAN DisplaySymbol;
110 BOOLEAN DisplayCodeOnly;
116#define EFI_DEBUGGER_BREAKPOINT_MAX 0x10
120 UINT64 OldInstruction;
127#define EFI_DEBUGGER_CALLSTACK_MAX 0x10
130 EfiDebuggerBranchTypeEbcCall,
131 EfiDebuggerBranchTypeEbcCallEx,
132 EfiDebuggerBranchTypeEbcRet,
133 EfiDebuggerBranchTypeEbcJmp,
134 EfiDebuggerBranchTypeEbcJmp8,
135 EfiDebuggerBranchTypeEbcMax,
136} EFI_DEBUGGER_BRANCH_TYPE;
138#define EFI_DEBUGGER_CALL_MAX_PARAMETER 0x16
139#define EFI_DEBUGGER_CALL_DEFAULT_PARAMETER 0x8
148 UINTN Parameter[EFI_DEBUGGER_CALL_MAX_PARAMETER];
149 EFI_DEBUGGER_BRANCH_TYPE Type;
155#define EFI_DEBUGGER_TRACE_MAX 0x10
160 EFI_DEBUGGER_BRANCH_TYPE Type;
181#define EFI_DEBUGGER_SIGNATURE SIGNATURE_32 ('e', 'd', 'b', '!')
183#define EFI_DEBUG_DEFAULT_INSTRUCTION_NUMBER 5
185#define EFI_DEBUG_BREAK_TIMER_INTERVAL 10000000
187#define EFI_DEBUG_FLAG_EBC 0x80000000
188#define EFI_DEBUG_FLAG_EBC_B_BOC 0x1
189#define EFI_DEBUG_FLAG_EBC_B_BOCX 0x2
190#define EFI_DEBUG_FLAG_EBC_B_BOR 0x4
191#define EFI_DEBUG_FLAG_EBC_B_BOE 0x8
192#define EFI_DEBUG_FLAG_EBC_B_BOT 0x10
193#define EFI_DEBUG_FLAG_EBC_B_STEPOVER 0x20
194#define EFI_DEBUG_FLAG_EBC_B_STEPOUT 0x40
195#define EFI_DEBUG_FLAG_EBC_B_BP 0x80
196#define EFI_DEBUG_FLAG_EBC_B_GT 0x100
197#define EFI_DEBUG_FLAG_EBC_B_BOK 0x200
198#define EFI_DEBUG_FLAG_EBC_BOC (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOC)
199#define EFI_DEBUG_FLAG_EBC_BOCX (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOCX)
200#define EFI_DEBUG_FLAG_EBC_BOR (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOR)
201#define EFI_DEBUG_FLAG_EBC_BOE (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOE)
202#define EFI_DEBUG_FLAG_EBC_BOT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOT)
203#define EFI_DEBUG_FLAG_EBC_STEPOVER (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOVER)
204#define EFI_DEBUG_FLAG_EBC_STEPOUT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOUT)
205#define EFI_DEBUG_FLAG_EBC_BP (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BP)
206#define EFI_DEBUG_FLAG_EBC_GT (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_GT)
207#define EFI_DEBUG_FLAG_EBC_BOK (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOK)
215 UINT32 EfiDebuggerRevision;
216 UINT32 EbcVmRevision;
223 UINTN DebuggerBreakpointCount;
225 UINTN CallStackEntryCount;
227 UINTN TraceEntryCount;
232 UINTN InstructionNumber;
235 BOOLEAN EnablePageBreak;
EFI_INSTRUCTION_SET_ARCHITECTURE
UINT64 EFI_PHYSICAL_ADDRESS