28#define EFI_DEBUG_SUPPORT_PROTOCOL_GUID \
30 0x2755590C, 0x6F3C, 0x42FA, {0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 } \
42#define EXCEPT_IA32_DIVIDE_ERROR 0
43#define EXCEPT_IA32_DEBUG 1
44#define EXCEPT_IA32_NMI 2
45#define EXCEPT_IA32_BREAKPOINT 3
46#define EXCEPT_IA32_OVERFLOW 4
47#define EXCEPT_IA32_BOUND 5
48#define EXCEPT_IA32_INVALID_OPCODE 6
49#define EXCEPT_IA32_DOUBLE_FAULT 8
50#define EXCEPT_IA32_INVALID_TSS 10
51#define EXCEPT_IA32_SEG_NOT_PRESENT 11
52#define EXCEPT_IA32_STACK_FAULT 12
53#define EXCEPT_IA32_GP_FAULT 13
54#define EXCEPT_IA32_PAGE_FAULT 14
55#define EXCEPT_IA32_FP_ERROR 16
56#define EXCEPT_IA32_ALIGNMENT_CHECK 17
57#define EXCEPT_IA32_MACHINE_CHECK 18
58#define EXCEPT_IA32_SIMD 19
136#define EXCEPT_X64_DIVIDE_ERROR 0
137#define EXCEPT_X64_DEBUG 1
138#define EXCEPT_X64_NMI 2
139#define EXCEPT_X64_BREAKPOINT 3
140#define EXCEPT_X64_OVERFLOW 4
141#define EXCEPT_X64_BOUND 5
142#define EXCEPT_X64_INVALID_OPCODE 6
143#define EXCEPT_X64_DOUBLE_FAULT 8
144#define EXCEPT_X64_INVALID_TSS 10
145#define EXCEPT_X64_SEG_NOT_PRESENT 11
146#define EXCEPT_X64_STACK_FAULT 12
147#define EXCEPT_X64_GP_FAULT 13
148#define EXCEPT_X64_PAGE_FAULT 14
149#define EXCEPT_X64_FP_ERROR 16
150#define EXCEPT_X64_ALIGNMENT_CHECK 17
151#define EXCEPT_X64_MACHINE_CHECK 18
152#define EXCEPT_X64_SIMD 19
239#define EXCEPT_IPF_VHTP_TRANSLATION 0
240#define EXCEPT_IPF_INSTRUCTION_TLB 1
241#define EXCEPT_IPF_DATA_TLB 2
242#define EXCEPT_IPF_ALT_INSTRUCTION_TLB 3
243#define EXCEPT_IPF_ALT_DATA_TLB 4
244#define EXCEPT_IPF_DATA_NESTED_TLB 5
245#define EXCEPT_IPF_INSTRUCTION_KEY_MISSED 6
246#define EXCEPT_IPF_DATA_KEY_MISSED 7
247#define EXCEPT_IPF_DIRTY_BIT 8
248#define EXCEPT_IPF_INSTRUCTION_ACCESS_BIT 9
249#define EXCEPT_IPF_DATA_ACCESS_BIT 10
250#define EXCEPT_IPF_BREAKPOINT 11
251#define EXCEPT_IPF_EXTERNAL_INTERRUPT 12
255#define EXCEPT_IPF_PAGE_NOT_PRESENT 20
256#define EXCEPT_IPF_KEY_PERMISSION 21
257#define EXCEPT_IPF_INSTRUCTION_ACCESS_RIGHTS 22
258#define EXCEPT_IPF_DATA_ACCESS_RIGHTS 23
259#define EXCEPT_IPF_GENERAL_EXCEPTION 24
260#define EXCEPT_IPF_DISABLED_FP_REGISTER 25
261#define EXCEPT_IPF_NAT_CONSUMPTION 26
262#define EXCEPT_IPF_SPECULATION 27
266#define EXCEPT_IPF_DEBUG 29
267#define EXCEPT_IPF_UNALIGNED_REFERENCE 30
268#define EXCEPT_IPF_UNSUPPORTED_DATA_REFERENCE 31
269#define EXCEPT_IPF_FP_FAULT 32
270#define EXCEPT_IPF_FP_TRAP 33
271#define EXCEPT_IPF_LOWER_PRIVILEGE_TRANSFER_TRAP 34
272#define EXCEPT_IPF_TAKEN_BRANCH 35
273#define EXCEPT_IPF_SINGLE_STEP 36
277#define EXCEPT_IPF_IA32_EXCEPTION 45
278#define EXCEPT_IPF_IA32_INTERCEPT 46
279#define EXCEPT_IPF_IA32_INTERRUPT 47
439#define EXCEPT_EBC_UNDEFINED 0
440#define EXCEPT_EBC_DIVIDE_ERROR 1
441#define EXCEPT_EBC_DEBUG 2
442#define EXCEPT_EBC_BREAKPOINT 3
443#define EXCEPT_EBC_OVERFLOW 4
444#define EXCEPT_EBC_INVALID_OPCODE 5
445#define EXCEPT_EBC_STACK_FAULT 6
446#define EXCEPT_EBC_ALIGNMENT_CHECK 7
447#define EXCEPT_EBC_INSTRUCTION_ENCODING 8
448#define EXCEPT_EBC_BAD_BREAK 9
449#define EXCEPT_EBC_STEP 10
453#define MAX_EBC_EXCEPTION EXCEPT_EBC_STEP
475#define EXCEPT_ARM_RESET 0
476#define EXCEPT_ARM_UNDEFINED_INSTRUCTION 1
477#define EXCEPT_ARM_SOFTWARE_INTERRUPT 2
478#define EXCEPT_ARM_PREFETCH_ABORT 3
479#define EXCEPT_ARM_DATA_ABORT 4
480#define EXCEPT_ARM_RESERVED 5
481#define EXCEPT_ARM_IRQ 6
482#define EXCEPT_ARM_FIQ 7
487#define MAX_ARM_EXCEPTION EXCEPT_ARM_FIQ
519#define EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS 0
520#define EXCEPT_AARCH64_IRQ 1
521#define EXCEPT_AARCH64_FIQ 2
522#define EXCEPT_AARCH64_SERROR 3
527#define MAX_AARCH64_EXCEPTION EXCEPT_AARCH64_SERROR
608#define EXCEPT_RISCV_INST_MISALIGNED 0
609#define EXCEPT_RISCV_INST_ACCESS_FAULT 1
610#define EXCEPT_RISCV_ILLEGAL_INST 2
611#define EXCEPT_RISCV_BREAKPOINT 3
612#define EXCEPT_RISCV_LOAD_ADDRESS_MISALIGNED 4
613#define EXCEPT_RISCV_LOAD_ACCESS_FAULT 5
614#define EXCEPT_RISCV_STORE_AMO_ADDRESS_MISALIGNED 6
615#define EXCEPT_RISCV_STORE_AMO_ACCESS_FAULT 7
616#define EXCEPT_RISCV_ENV_CALL_FROM_UMODE 8
617#define EXCEPT_RISCV_ENV_CALL_FROM_SMODE 9
618#define EXCEPT_RISCV_ENV_CALL_FROM_VS_MODE 10
619#define EXCEPT_RISCV_ENV_CALL_FROM_MMODE 11
620#define EXCEPT_RISCV_INST_ACCESS_PAGE_FAULT 12
621#define EXCEPT_RISCV_LOAD_ACCESS_PAGE_FAULT 13
622#define EXCEPT_RISCV_14 14
623#define EXCEPT_RISCV_STORE_ACCESS_PAGE_FAULT 15
624#define EXCEPT_RISCV_16 16
625#define EXCEPT_RISCV_17 17
626#define EXCEPT_RISCV_18 18
627#define EXCEPT_RISCV_19 19
628#define EXCEPT_RISCV_INST_GUEST_PAGE_FAULT 20
629#define EXCEPT_RISCV_LOAD_GUEST_PAGE_FAULT 21
630#define EXCEPT_RISCV_VIRTUAL_INSTRUCTION 22
631#define EXCEPT_RISCV_STORE_GUEST_PAGE_FAULT 23
632#define EXCEPT_RISCV_MAX_EXCEPTIONS (EXCEPT_RISCV_STORE_GUEST_PAGE_FAULT)
637#define EXCEPT_RISCV_IS_IRQ(x) ((x & 0x8000000000000000UL) != 0)
638#define EXCEPT_RISCV_IRQ_INDEX(x) (x & 0x7FFFFFFFFFFFFFFFUL)
639#define EXCEPT_RISCV_IRQ_0 0x8000000000000000UL
640#define EXCEPT_RISCV_IRQ_SOFT_FROM_SMODE 0x8000000000000001UL
641#define EXCEPT_RISCV_IRQ_SOFT_FROM_VSMODE 0x8000000000000002UL
642#define EXCEPT_RISCV_IRQ_SOFT_FROM_MMODE 0x8000000000000003UL
643#define EXCEPT_RISCV_IRQ_4 0x8000000000000004UL
644#define EXCEPT_RISCV_IRQ_TIMER_FROM_SMODE 0x8000000000000005UL
645#define EXCEPT_RISCV_MAX_IRQS (EXCEPT_RISCV_IRQ_INDEX(EXCEPT_RISCV_IRQ_TIMER_FROM_SMODE))
702#define EXCEPT_LOONGARCH_INT 0
703#define EXCEPT_LOONGARCH_PIL 1
704#define EXCEPT_LOONGARCH_PIS 2
705#define EXCEPT_LOONGARCH_PIF 3
706#define EXCEPT_LOONGARCH_PME 4
707#define EXCEPT_LOONGARCH_PNR 5
708#define EXCEPT_LOONGARCH_PNX 6
709#define EXCEPT_LOONGARCH_PPI 7
710#define EXCEPT_LOONGARCH_ADE 8
711#define EXCEPT_LOONGARCH_ALE 9
712#define EXCEPT_LOONGARCH_BCE 10
713#define EXCEPT_LOONGARCH_SYS 11
714#define EXCEPT_LOONGARCH_BRK 12
715#define EXCEPT_LOONGARCH_INE 13
716#define EXCEPT_LOONGARCH_IPE 14
717#define EXCEPT_LOONGARCH_FPD 15
718#define EXCEPT_LOONGARCH_SXD 16
719#define EXCEPT_LOONGARCH_ASXD 17
720#define EXCEPT_LOONGARCH_FPE 18
721#define EXCEPT_LOONGARCH_WPE 19
722#define EXCEPT_LOONGARCH_BTD 20
723#define EXCEPT_LOONGARCH_BTE 21
724#define EXCEPT_LOONGARCH_GSPR 22
725#define EXCEPT_LOONGARCH_HVC 23
726#define EXCEPT_LOONGARCH_GCXC 24
732#define MAX_LOONGARCH_EXCEPTION 64
737#define EXCEPT_LOONGARCH_INT_SIP0 0
738#define EXCEPT_LOONGARCH_INT_SIP1 1
739#define EXCEPT_LOONGARCH_INT_IP0 2
740#define EXCEPT_LOONGARCH_INT_IP1 3
741#define EXCEPT_LOONGARCH_INT_IP2 4
742#define EXCEPT_LOONGARCH_INT_IP3 5
743#define EXCEPT_LOONGARCH_INT_IP4 6
744#define EXCEPT_LOONGARCH_INT_IP5 7
745#define EXCEPT_LOONGARCH_INT_IP6 8
746#define EXCEPT_LOONGARCH_INT_IP7 9
747#define EXCEPT_LOONGARCH_INT_PMC 10
748#define EXCEPT_LOONGARCH_INT_TIMER 11
749#define EXCEPT_LOONGARCH_INT_IPI 12
755#define MAX_LOONGARCH_INTERRUPT 16
unsigned short UINT16
2-byte unsigned value.
UINT64 UINTN
Unsigned value of native width.
unsigned long long UINT64
8-byte unsigned value.
INT64 INTN
Signed value of native width.
unsigned char UINT8
1-byte unsigned value.
unsigned int UINT32
4-byte unsigned value.
#define VOID
Undeclared type.
EFI_STATUS(EFIAPI * EFI_REGISTER_PERIODIC_CALLBACK)(IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN EFI_PERIODIC_CALLBACK PeriodicCallback)
Registers a function to be called back periodically in interrupt context.
INTN EFI_EXCEPTION_TYPE
Processor exception to be hooked.
EFI_INSTRUCTION_SET_ARCHITECTURE
Machine type definition.
EFI_STATUS(EFIAPI * EFI_GET_MAXIMUM_PROCESSOR_INDEX)(IN EFI_DEBUG_SUPPORT_PROTOCOL *This, OUT UINTN *MaxProcessorIndex)
Returns the maximum value that may be used for the ProcessorIndex parameter in RegisterPeriodicCallba...
VOID(EFIAPI * EFI_EXCEPTION_CALLBACK)(IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)
Registers and enables an exception callback function for the specified exception.
struct _EFI_DEBUG_SUPPORT_PROTOCOL EFI_DEBUG_SUPPORT_PROTOCOL
VOID(EFIAPI * EFI_PERIODIC_CALLBACK)(IN OUT EFI_SYSTEM_CONTEXT SystemContext)
Registers and enables the on-target debug agent's periodic entry point.
EFI_STATUS(EFIAPI * EFI_REGISTER_EXCEPTION_CALLBACK)(IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN EFI_EXCEPTION_CALLBACK ExceptionCallback, IN EFI_EXCEPTION_TYPE ExceptionType)
Registers a function to be called when a given processor exception occurs.
EFI_GUID gEfiDebugSupportProtocolGuid
EFI_STATUS(EFIAPI * EFI_INVALIDATE_INSTRUCTION_CACHE)(IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN VOID *Start, IN UINT64 Length)
Invalidates processor instruction cache for a memory range.
EFI image format for PE32, PE32+ and TE.
#define IMAGE_FILE_MACHINE_EBC
#define IMAGE_FILE_MACHINE_I386
#define IMAGE_FILE_MACHINE_X64
#define IMAGE_FILE_MACHINE_IA64
#define IMAGE_FILE_MACHINE_ARM64
RETURN_STATUS EFI_STATUS
Function return status for EFI API.
GUID EFI_GUID
128-bit buffer containing a unique identifier value.
#define FILE_LICENCE(_licence)
Declare a particular licence as applying to a file.
#define FILE_SECBOOT(_status)
Declare a file's UEFI Secure Boot permission status.
UINT8_t Length
Length of this structure.
ARM processor context definition.
EBC processor context definition.
IA-32 processor context definition.
EFI_FX_SAVE_STATE_IA32 FxSaveState
IPF processor context definition.
x64 processor context definition.
EFI_FX_SAVE_STATE_X64 FxSaveState
This protocol provides the services to allow the debug agent to register callback functions that are ...
EFI_REGISTER_EXCEPTION_CALLBACK RegisterExceptionCallback
EFI_GET_MAXIMUM_PROCESSOR_INDEX GetMaximumProcessorIndex
EFI_REGISTER_PERIODIC_CALLBACK RegisterPeriodicCallback
EFI_INVALIDATE_INSTRUCTION_CACHE InvalidateInstructionCache
EFI_INSTRUCTION_SET_ARCHITECTURE Isa
Declares the processor architecture for this instance of the EFI Debug Support protocol.
Universal EFI_SYSTEM_CONTEXT definition.
EFI_SYSTEM_CONTEXT_RISCV64 * SystemContextRiscV64
EFI_SYSTEM_CONTEXT_EBC * SystemContextEbc
EFI_SYSTEM_CONTEXT_IA32 * SystemContextIa32
EFI_SYSTEM_CONTEXT_LOONGARCH64 * SystemContextLoongArch64
EFI_SYSTEM_CONTEXT_X64 * SystemContextX64
EFI_SYSTEM_CONTEXT_AARCH64 * SystemContextAArch64
EFI_SYSTEM_CONTEXT_ARM * SystemContextArm
EFI_SYSTEM_CONTEXT_IPF * SystemContextIpf