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