16 #ifndef __DEBUG_SUPPORT_H__ 17 #define __DEBUG_SUPPORT_H__ 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 82 UINT8 St7Mm7[10], Reserved10[6];
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
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
#define IMAGE_FILE_MACHINE_ARMTHUMB_MIXED
This protocol provides the services to allow the debug agent to register callback functions that are ...