TianoCore EDK2 master
DebugSupport.h File Reference

Go to the source code of this file.

Data Structures

struct  EFI_FX_SAVE_STATE_IA32
 
struct  EFI_SYSTEM_CONTEXT_IA32
 
struct  EFI_FX_SAVE_STATE_X64
 
struct  EFI_SYSTEM_CONTEXT_X64
 
struct  EFI_SYSTEM_CONTEXT_IPF
 
struct  EFI_SYSTEM_CONTEXT_EBC
 
struct  EFI_SYSTEM_CONTEXT_ARM
 
struct  EFI_SYSTEM_CONTEXT_AARCH64
 
struct  EFI_SYSTEM_CONTEXT_RISCV64
 
union  EFI_SYSTEM_CONTEXT
 
struct  _EFI_DEBUG_SUPPORT_PROTOCOL
 

Macros

#define EFI_DEBUG_SUPPORT_PROTOCOL_GUID
 
#define EXCEPT_IA32_DIVIDE_ERROR   0
 
#define EXCEPT_IA32_DEBUG   1
 
#define EXCEPT_IA32_NMI   2
 
#define EXCEPT_IA32_BREAKPOINT   3
 
#define EXCEPT_IA32_OVERFLOW   4
 
#define EXCEPT_IA32_BOUND   5
 
#define EXCEPT_IA32_INVALID_OPCODE   6
 
#define EXCEPT_IA32_DOUBLE_FAULT   8
 
#define EXCEPT_IA32_INVALID_TSS   10
 
#define EXCEPT_IA32_SEG_NOT_PRESENT   11
 
#define EXCEPT_IA32_STACK_FAULT   12
 
#define EXCEPT_IA32_GP_FAULT   13
 
#define EXCEPT_IA32_PAGE_FAULT   14
 
#define EXCEPT_IA32_FP_ERROR   16
 
#define EXCEPT_IA32_ALIGNMENT_CHECK   17
 
#define EXCEPT_IA32_MACHINE_CHECK   18
 
#define EXCEPT_IA32_SIMD   19
 
#define EXCEPT_X64_DIVIDE_ERROR   0
 
#define EXCEPT_X64_DEBUG   1
 
#define EXCEPT_X64_NMI   2
 
#define EXCEPT_X64_BREAKPOINT   3
 
#define EXCEPT_X64_OVERFLOW   4
 
#define EXCEPT_X64_BOUND   5
 
#define EXCEPT_X64_INVALID_OPCODE   6
 
#define EXCEPT_X64_DOUBLE_FAULT   8
 
#define EXCEPT_X64_INVALID_TSS   10
 
#define EXCEPT_X64_SEG_NOT_PRESENT   11
 
#define EXCEPT_X64_STACK_FAULT   12
 
#define EXCEPT_X64_GP_FAULT   13
 
#define EXCEPT_X64_PAGE_FAULT   14
 
#define EXCEPT_X64_FP_ERROR   16
 
#define EXCEPT_X64_ALIGNMENT_CHECK   17
 
#define EXCEPT_X64_MACHINE_CHECK   18
 
#define EXCEPT_X64_SIMD   19
 
#define EXCEPT_IPF_VHTP_TRANSLATION   0
 
#define EXCEPT_IPF_INSTRUCTION_TLB   1
 
#define EXCEPT_IPF_DATA_TLB   2
 
#define EXCEPT_IPF_ALT_INSTRUCTION_TLB   3
 
#define EXCEPT_IPF_ALT_DATA_TLB   4
 
#define EXCEPT_IPF_DATA_NESTED_TLB   5
 
#define EXCEPT_IPF_INSTRUCTION_KEY_MISSED   6
 
#define EXCEPT_IPF_DATA_KEY_MISSED   7
 
#define EXCEPT_IPF_DIRTY_BIT   8
 
#define EXCEPT_IPF_INSTRUCTION_ACCESS_BIT   9
 
#define EXCEPT_IPF_DATA_ACCESS_BIT   10
 
#define EXCEPT_IPF_BREAKPOINT   11
 
#define EXCEPT_IPF_EXTERNAL_INTERRUPT   12
 
#define EXCEPT_IPF_PAGE_NOT_PRESENT   20
 
#define EXCEPT_IPF_KEY_PERMISSION   21
 
#define EXCEPT_IPF_INSTRUCTION_ACCESS_RIGHTS   22
 
#define EXCEPT_IPF_DATA_ACCESS_RIGHTS   23
 
#define EXCEPT_IPF_GENERAL_EXCEPTION   24
 
#define EXCEPT_IPF_DISABLED_FP_REGISTER   25
 
#define EXCEPT_IPF_NAT_CONSUMPTION   26
 
#define EXCEPT_IPF_SPECULATION   27
 
#define EXCEPT_IPF_DEBUG   29
 
#define EXCEPT_IPF_UNALIGNED_REFERENCE   30
 
#define EXCEPT_IPF_UNSUPPORTED_DATA_REFERENCE   31
 
#define EXCEPT_IPF_FP_FAULT   32
 
#define EXCEPT_IPF_FP_TRAP   33
 
#define EXCEPT_IPF_LOWER_PRIVILEGE_TRANSFER_TRAP   34
 
#define EXCEPT_IPF_TAKEN_BRANCH   35
 
#define EXCEPT_IPF_SINGLE_STEP   36
 
#define EXCEPT_IPF_IA32_EXCEPTION   45
 
#define EXCEPT_IPF_IA32_INTERCEPT   46
 
#define EXCEPT_IPF_IA32_INTERRUPT   47
 
#define EXCEPT_EBC_UNDEFINED   0
 
#define EXCEPT_EBC_DIVIDE_ERROR   1
 
#define EXCEPT_EBC_DEBUG   2
 
#define EXCEPT_EBC_BREAKPOINT   3
 
#define EXCEPT_EBC_OVERFLOW   4
 
#define EXCEPT_EBC_INVALID_OPCODE   5
 Opcode out of range. More...
 
#define EXCEPT_EBC_STACK_FAULT   6
 
#define EXCEPT_EBC_ALIGNMENT_CHECK   7
 
#define EXCEPT_EBC_INSTRUCTION_ENCODING   8
 Malformed instruction. More...
 
#define EXCEPT_EBC_BAD_BREAK   9
 BREAK 0 or undefined BREAK. More...
 
#define EXCEPT_EBC_STEP   10
 
#define MAX_EBC_EXCEPTION   EXCEPT_EBC_STEP
 
#define EXCEPT_ARM_RESET   0
 
#define EXCEPT_ARM_UNDEFINED_INSTRUCTION   1
 
#define EXCEPT_ARM_SOFTWARE_INTERRUPT   2
 
#define EXCEPT_ARM_PREFETCH_ABORT   3
 
#define EXCEPT_ARM_DATA_ABORT   4
 
#define EXCEPT_ARM_RESERVED   5
 
#define EXCEPT_ARM_IRQ   6
 
#define EXCEPT_ARM_FIQ   7
 
#define MAX_ARM_EXCEPTION   EXCEPT_ARM_FIQ
 
#define EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS   0
 
#define EXCEPT_AARCH64_IRQ   1
 
#define EXCEPT_AARCH64_FIQ   2
 
#define EXCEPT_AARCH64_SERROR   3
 
#define MAX_AARCH64_EXCEPTION   EXCEPT_AARCH64_SERROR
 
#define EXCEPT_RISCV_INST_MISALIGNED   0
 
#define EXCEPT_RISCV_INST_ACCESS_FAULT   1
 
#define EXCEPT_RISCV_ILLEGAL_INST   2
 
#define EXCEPT_RISCV_BREAKPOINT   3
 
#define EXCEPT_RISCV_LOAD_ADDRESS_MISALIGNED   4
 
#define EXCEPT_RISCV_LOAD_ACCESS_FAULT   5
 
#define EXCEPT_RISCV_STORE_AMO_ADDRESS_MISALIGNED   6
 
#define EXCEPT_RISCV_STORE_AMO_ACCESS_FAULT   7
 
#define EXCEPT_RISCV_ENV_CALL_FROM_UMODE   8
 
#define EXCEPT_RISCV_ENV_CALL_FROM_SMODE   9
 
#define EXCEPT_RISCV_ENV_CALL_FROM_HMODE   10
 
#define EXCEPT_RISCV_ENV_CALL_FROM_MMODE   11
 
#define EXCEPT_RISCV_SOFTWARE_INT   0x0
 
#define EXCEPT_RISCV_TIMER_INT   0x1
 

Typedefs

typedef struct _EFI_DEBUG_SUPPORT_PROTOCOL EFI_DEBUG_SUPPORT_PROTOCOL
 
typedef INTN EFI_EXCEPTION_TYPE
 
typedef VOID(EFIAPIEFI_EXCEPTION_CALLBACK) (IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext)
 
typedef VOID(EFIAPIEFI_PERIODIC_CALLBACK) (IN OUT EFI_SYSTEM_CONTEXT SystemContext)
 
typedef EFI_STATUS(EFIAPIEFI_GET_MAXIMUM_PROCESSOR_INDEX) (IN EFI_DEBUG_SUPPORT_PROTOCOL *This, OUT UINTN *MaxProcessorIndex)
 
typedef EFI_STATUS(EFIAPIEFI_REGISTER_PERIODIC_CALLBACK) (IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN EFI_PERIODIC_CALLBACK PeriodicCallback)
 
typedef EFI_STATUS(EFIAPIEFI_REGISTER_EXCEPTION_CALLBACK) (IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN EFI_EXCEPTION_CALLBACK ExceptionCallback, IN EFI_EXCEPTION_TYPE ExceptionType)
 
typedef EFI_STATUS(EFIAPIEFI_INVALIDATE_INSTRUCTION_CACHE) (IN EFI_DEBUG_SUPPORT_PROTOCOL *This, IN UINTN ProcessorIndex, IN VOID *Start, IN UINT64 Length)
 

Enumerations

enum  EFI_INSTRUCTION_SET_ARCHITECTURE {
  IsaIa32 = IMAGE_FILE_MACHINE_I386 , IsaX64 = IMAGE_FILE_MACHINE_X64 , IsaIpf = IMAGE_FILE_MACHINE_IA64 , IsaEbc = IMAGE_FILE_MACHINE_EBC ,
  IsaArm = IMAGE_FILE_MACHINE_ARMTHUMB_MIXED , IsaAArch64 = IMAGE_FILE_MACHINE_ARM64
}
 

Variables

EFI_GUID gEfiDebugSupportProtocolGuid
 

Detailed Description

DebugSupport protocol and supporting definitions as defined in the UEFI2.4 specification.

The DebugSupport protocol is used by source level debuggers to abstract the processor and handle context save and restore operations.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
Portions copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.
Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.

SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file DebugSupport.h.

Macro Definition Documentation

◆ EFI_DEBUG_SUPPORT_PROTOCOL_GUID

#define EFI_DEBUG_SUPPORT_PROTOCOL_GUID
Value:
{ \
0x2755590C, 0x6F3C, 0x42FA, {0x9E, 0xA4, 0xA3, 0xBA, 0x54, 0x3C, 0xDA, 0x25 } \
}

Debug Support protocol {2755590C-6F3C-42FA-9EA4-A3BA543CDA25}.

Definition at line 26 of file DebugSupport.h.

◆ EXCEPT_AARCH64_FIQ

#define EXCEPT_AARCH64_FIQ   2

Definition at line 519 of file DebugSupport.h.

◆ EXCEPT_AARCH64_IRQ

#define EXCEPT_AARCH64_IRQ   1

Definition at line 518 of file DebugSupport.h.

◆ EXCEPT_AARCH64_SERROR

#define EXCEPT_AARCH64_SERROR   3

Definition at line 520 of file DebugSupport.h.

◆ EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS

#define EXCEPT_AARCH64_SYNCHRONOUS_EXCEPTIONS   0

AARCH64 processor exception types.

Definition at line 517 of file DebugSupport.h.

◆ EXCEPT_ARM_DATA_ABORT

#define EXCEPT_ARM_DATA_ABORT   4

Definition at line 477 of file DebugSupport.h.

◆ EXCEPT_ARM_FIQ

#define EXCEPT_ARM_FIQ   7

Definition at line 480 of file DebugSupport.h.

◆ EXCEPT_ARM_IRQ

#define EXCEPT_ARM_IRQ   6

Definition at line 479 of file DebugSupport.h.

◆ EXCEPT_ARM_PREFETCH_ABORT

#define EXCEPT_ARM_PREFETCH_ABORT   3

Definition at line 476 of file DebugSupport.h.

◆ EXCEPT_ARM_RESERVED

#define EXCEPT_ARM_RESERVED   5

Definition at line 478 of file DebugSupport.h.

◆ EXCEPT_ARM_RESET

#define EXCEPT_ARM_RESET   0

ARM processor exception types.

Definition at line 473 of file DebugSupport.h.

◆ EXCEPT_ARM_SOFTWARE_INTERRUPT

#define EXCEPT_ARM_SOFTWARE_INTERRUPT   2

Definition at line 475 of file DebugSupport.h.

◆ EXCEPT_ARM_UNDEFINED_INSTRUCTION

#define EXCEPT_ARM_UNDEFINED_INSTRUCTION   1

Definition at line 474 of file DebugSupport.h.

◆ EXCEPT_EBC_ALIGNMENT_CHECK

#define EXCEPT_EBC_ALIGNMENT_CHECK   7

Definition at line 444 of file DebugSupport.h.

◆ EXCEPT_EBC_BAD_BREAK

#define EXCEPT_EBC_BAD_BREAK   9

BREAK 0 or undefined BREAK.

Definition at line 446 of file DebugSupport.h.

◆ EXCEPT_EBC_BREAKPOINT

#define EXCEPT_EBC_BREAKPOINT   3

Definition at line 440 of file DebugSupport.h.

◆ EXCEPT_EBC_DEBUG

#define EXCEPT_EBC_DEBUG   2

Definition at line 439 of file DebugSupport.h.

◆ EXCEPT_EBC_DIVIDE_ERROR

#define EXCEPT_EBC_DIVIDE_ERROR   1

Definition at line 438 of file DebugSupport.h.

◆ EXCEPT_EBC_INSTRUCTION_ENCODING

#define EXCEPT_EBC_INSTRUCTION_ENCODING   8

Malformed instruction.

Definition at line 445 of file DebugSupport.h.

◆ EXCEPT_EBC_INVALID_OPCODE

#define EXCEPT_EBC_INVALID_OPCODE   5

Opcode out of range.

Definition at line 442 of file DebugSupport.h.

◆ EXCEPT_EBC_OVERFLOW

#define EXCEPT_EBC_OVERFLOW   4

Definition at line 441 of file DebugSupport.h.

◆ EXCEPT_EBC_STACK_FAULT

#define EXCEPT_EBC_STACK_FAULT   6

Definition at line 443 of file DebugSupport.h.

◆ EXCEPT_EBC_STEP

#define EXCEPT_EBC_STEP   10

To support debug stepping.

Definition at line 447 of file DebugSupport.h.

◆ EXCEPT_EBC_UNDEFINED

#define EXCEPT_EBC_UNDEFINED   0

EBC processor exception types.

Definition at line 437 of file DebugSupport.h.

◆ EXCEPT_IA32_ALIGNMENT_CHECK

#define EXCEPT_IA32_ALIGNMENT_CHECK   17

Definition at line 54 of file DebugSupport.h.

◆ EXCEPT_IA32_BOUND

#define EXCEPT_IA32_BOUND   5

Definition at line 45 of file DebugSupport.h.

◆ EXCEPT_IA32_BREAKPOINT

#define EXCEPT_IA32_BREAKPOINT   3

Definition at line 43 of file DebugSupport.h.

◆ EXCEPT_IA32_DEBUG

#define EXCEPT_IA32_DEBUG   1

Definition at line 41 of file DebugSupport.h.

◆ EXCEPT_IA32_DIVIDE_ERROR

#define EXCEPT_IA32_DIVIDE_ERROR   0

IA-32 processor exception types.

Definition at line 40 of file DebugSupport.h.

◆ EXCEPT_IA32_DOUBLE_FAULT

#define EXCEPT_IA32_DOUBLE_FAULT   8

Definition at line 47 of file DebugSupport.h.

◆ EXCEPT_IA32_FP_ERROR

#define EXCEPT_IA32_FP_ERROR   16

Definition at line 53 of file DebugSupport.h.

◆ EXCEPT_IA32_GP_FAULT

#define EXCEPT_IA32_GP_FAULT   13

Definition at line 51 of file DebugSupport.h.

◆ EXCEPT_IA32_INVALID_OPCODE

#define EXCEPT_IA32_INVALID_OPCODE   6

Definition at line 46 of file DebugSupport.h.

◆ EXCEPT_IA32_INVALID_TSS

#define EXCEPT_IA32_INVALID_TSS   10

Definition at line 48 of file DebugSupport.h.

◆ EXCEPT_IA32_MACHINE_CHECK

#define EXCEPT_IA32_MACHINE_CHECK   18

Definition at line 55 of file DebugSupport.h.

◆ EXCEPT_IA32_NMI

#define EXCEPT_IA32_NMI   2

Definition at line 42 of file DebugSupport.h.

◆ EXCEPT_IA32_OVERFLOW

#define EXCEPT_IA32_OVERFLOW   4

Definition at line 44 of file DebugSupport.h.

◆ EXCEPT_IA32_PAGE_FAULT

#define EXCEPT_IA32_PAGE_FAULT   14

Definition at line 52 of file DebugSupport.h.

◆ EXCEPT_IA32_SEG_NOT_PRESENT

#define EXCEPT_IA32_SEG_NOT_PRESENT   11

Definition at line 49 of file DebugSupport.h.

◆ EXCEPT_IA32_SIMD

#define EXCEPT_IA32_SIMD   19

Definition at line 56 of file DebugSupport.h.

◆ EXCEPT_IA32_STACK_FAULT

#define EXCEPT_IA32_STACK_FAULT   12

Definition at line 50 of file DebugSupport.h.

◆ EXCEPT_IPF_ALT_DATA_TLB

#define EXCEPT_IPF_ALT_DATA_TLB   4

Definition at line 241 of file DebugSupport.h.

◆ EXCEPT_IPF_ALT_INSTRUCTION_TLB

#define EXCEPT_IPF_ALT_INSTRUCTION_TLB   3

Definition at line 240 of file DebugSupport.h.

◆ EXCEPT_IPF_BREAKPOINT

#define EXCEPT_IPF_BREAKPOINT   11

Definition at line 248 of file DebugSupport.h.

◆ EXCEPT_IPF_DATA_ACCESS_BIT

#define EXCEPT_IPF_DATA_ACCESS_BIT   10

Definition at line 247 of file DebugSupport.h.

◆ EXCEPT_IPF_DATA_ACCESS_RIGHTS

#define EXCEPT_IPF_DATA_ACCESS_RIGHTS   23

Definition at line 256 of file DebugSupport.h.

◆ EXCEPT_IPF_DATA_KEY_MISSED

#define EXCEPT_IPF_DATA_KEY_MISSED   7

Definition at line 244 of file DebugSupport.h.

◆ EXCEPT_IPF_DATA_NESTED_TLB

#define EXCEPT_IPF_DATA_NESTED_TLB   5

Definition at line 242 of file DebugSupport.h.

◆ EXCEPT_IPF_DATA_TLB

#define EXCEPT_IPF_DATA_TLB   2

Definition at line 239 of file DebugSupport.h.

◆ EXCEPT_IPF_DEBUG

#define EXCEPT_IPF_DEBUG   29

Definition at line 264 of file DebugSupport.h.

◆ EXCEPT_IPF_DIRTY_BIT

#define EXCEPT_IPF_DIRTY_BIT   8

Definition at line 245 of file DebugSupport.h.

◆ EXCEPT_IPF_DISABLED_FP_REGISTER

#define EXCEPT_IPF_DISABLED_FP_REGISTER   25

Definition at line 258 of file DebugSupport.h.

◆ EXCEPT_IPF_EXTERNAL_INTERRUPT

#define EXCEPT_IPF_EXTERNAL_INTERRUPT   12

Definition at line 249 of file DebugSupport.h.

◆ EXCEPT_IPF_FP_FAULT

#define EXCEPT_IPF_FP_FAULT   32

Definition at line 267 of file DebugSupport.h.

◆ EXCEPT_IPF_FP_TRAP

#define EXCEPT_IPF_FP_TRAP   33

Definition at line 268 of file DebugSupport.h.

◆ EXCEPT_IPF_GENERAL_EXCEPTION

#define EXCEPT_IPF_GENERAL_EXCEPTION   24

Definition at line 257 of file DebugSupport.h.

◆ EXCEPT_IPF_IA32_EXCEPTION

#define EXCEPT_IPF_IA32_EXCEPTION   45

Definition at line 275 of file DebugSupport.h.

◆ EXCEPT_IPF_IA32_INTERCEPT

#define EXCEPT_IPF_IA32_INTERCEPT   46

Definition at line 276 of file DebugSupport.h.

◆ EXCEPT_IPF_IA32_INTERRUPT

#define EXCEPT_IPF_IA32_INTERRUPT   47

Definition at line 277 of file DebugSupport.h.

◆ EXCEPT_IPF_INSTRUCTION_ACCESS_BIT

#define EXCEPT_IPF_INSTRUCTION_ACCESS_BIT   9

Definition at line 246 of file DebugSupport.h.

◆ EXCEPT_IPF_INSTRUCTION_ACCESS_RIGHTS

#define EXCEPT_IPF_INSTRUCTION_ACCESS_RIGHTS   22

Definition at line 255 of file DebugSupport.h.

◆ EXCEPT_IPF_INSTRUCTION_KEY_MISSED

#define EXCEPT_IPF_INSTRUCTION_KEY_MISSED   6

Definition at line 243 of file DebugSupport.h.

◆ EXCEPT_IPF_INSTRUCTION_TLB

#define EXCEPT_IPF_INSTRUCTION_TLB   1

Definition at line 238 of file DebugSupport.h.

◆ EXCEPT_IPF_KEY_PERMISSION

#define EXCEPT_IPF_KEY_PERMISSION   21

Definition at line 254 of file DebugSupport.h.

◆ EXCEPT_IPF_LOWER_PRIVILEGE_TRANSFER_TRAP

#define EXCEPT_IPF_LOWER_PRIVILEGE_TRANSFER_TRAP   34

Definition at line 269 of file DebugSupport.h.

◆ EXCEPT_IPF_NAT_CONSUMPTION

#define EXCEPT_IPF_NAT_CONSUMPTION   26

Definition at line 259 of file DebugSupport.h.

◆ EXCEPT_IPF_PAGE_NOT_PRESENT

#define EXCEPT_IPF_PAGE_NOT_PRESENT   20

Definition at line 253 of file DebugSupport.h.

◆ EXCEPT_IPF_SINGLE_STEP

#define EXCEPT_IPF_SINGLE_STEP   36

Definition at line 271 of file DebugSupport.h.

◆ EXCEPT_IPF_SPECULATION

#define EXCEPT_IPF_SPECULATION   27

Definition at line 260 of file DebugSupport.h.

◆ EXCEPT_IPF_TAKEN_BRANCH

#define EXCEPT_IPF_TAKEN_BRANCH   35

Definition at line 270 of file DebugSupport.h.

◆ EXCEPT_IPF_UNALIGNED_REFERENCE

#define EXCEPT_IPF_UNALIGNED_REFERENCE   30

Definition at line 265 of file DebugSupport.h.

◆ EXCEPT_IPF_UNSUPPORTED_DATA_REFERENCE

#define EXCEPT_IPF_UNSUPPORTED_DATA_REFERENCE   31

Definition at line 266 of file DebugSupport.h.

◆ EXCEPT_IPF_VHTP_TRANSLATION

#define EXCEPT_IPF_VHTP_TRANSLATION   0

Itanium Processor Family Exception types.

Definition at line 237 of file DebugSupport.h.

◆ EXCEPT_RISCV_BREAKPOINT

#define EXCEPT_RISCV_BREAKPOINT   3

Definition at line 609 of file DebugSupport.h.

◆ EXCEPT_RISCV_ENV_CALL_FROM_HMODE

#define EXCEPT_RISCV_ENV_CALL_FROM_HMODE   10

Definition at line 616 of file DebugSupport.h.

◆ EXCEPT_RISCV_ENV_CALL_FROM_MMODE

#define EXCEPT_RISCV_ENV_CALL_FROM_MMODE   11

Definition at line 617 of file DebugSupport.h.

◆ EXCEPT_RISCV_ENV_CALL_FROM_SMODE

#define EXCEPT_RISCV_ENV_CALL_FROM_SMODE   9

Definition at line 615 of file DebugSupport.h.

◆ EXCEPT_RISCV_ENV_CALL_FROM_UMODE

#define EXCEPT_RISCV_ENV_CALL_FROM_UMODE   8

Definition at line 614 of file DebugSupport.h.

◆ EXCEPT_RISCV_ILLEGAL_INST

#define EXCEPT_RISCV_ILLEGAL_INST   2

Definition at line 608 of file DebugSupport.h.

◆ EXCEPT_RISCV_INST_ACCESS_FAULT

#define EXCEPT_RISCV_INST_ACCESS_FAULT   1

Definition at line 607 of file DebugSupport.h.

◆ EXCEPT_RISCV_INST_MISALIGNED

#define EXCEPT_RISCV_INST_MISALIGNED   0

RISC-V processor exception types.

Definition at line 606 of file DebugSupport.h.

◆ EXCEPT_RISCV_LOAD_ACCESS_FAULT

#define EXCEPT_RISCV_LOAD_ACCESS_FAULT   5

Definition at line 611 of file DebugSupport.h.

◆ EXCEPT_RISCV_LOAD_ADDRESS_MISALIGNED

#define EXCEPT_RISCV_LOAD_ADDRESS_MISALIGNED   4

Definition at line 610 of file DebugSupport.h.

◆ EXCEPT_RISCV_SOFTWARE_INT

#define EXCEPT_RISCV_SOFTWARE_INT   0x0

Definition at line 619 of file DebugSupport.h.

◆ EXCEPT_RISCV_STORE_AMO_ACCESS_FAULT

#define EXCEPT_RISCV_STORE_AMO_ACCESS_FAULT   7

Definition at line 613 of file DebugSupport.h.

◆ EXCEPT_RISCV_STORE_AMO_ADDRESS_MISALIGNED

#define EXCEPT_RISCV_STORE_AMO_ADDRESS_MISALIGNED   6

Definition at line 612 of file DebugSupport.h.

◆ EXCEPT_RISCV_TIMER_INT

#define EXCEPT_RISCV_TIMER_INT   0x1

Definition at line 620 of file DebugSupport.h.

◆ EXCEPT_X64_ALIGNMENT_CHECK

#define EXCEPT_X64_ALIGNMENT_CHECK   17

Definition at line 148 of file DebugSupport.h.

◆ EXCEPT_X64_BOUND

#define EXCEPT_X64_BOUND   5

Definition at line 139 of file DebugSupport.h.

◆ EXCEPT_X64_BREAKPOINT

#define EXCEPT_X64_BREAKPOINT   3

Definition at line 137 of file DebugSupport.h.

◆ EXCEPT_X64_DEBUG

#define EXCEPT_X64_DEBUG   1

Definition at line 135 of file DebugSupport.h.

◆ EXCEPT_X64_DIVIDE_ERROR

#define EXCEPT_X64_DIVIDE_ERROR   0

x64 processor exception types.

Definition at line 134 of file DebugSupport.h.

◆ EXCEPT_X64_DOUBLE_FAULT

#define EXCEPT_X64_DOUBLE_FAULT   8

Definition at line 141 of file DebugSupport.h.

◆ EXCEPT_X64_FP_ERROR

#define EXCEPT_X64_FP_ERROR   16

Definition at line 147 of file DebugSupport.h.

◆ EXCEPT_X64_GP_FAULT

#define EXCEPT_X64_GP_FAULT   13

Definition at line 145 of file DebugSupport.h.

◆ EXCEPT_X64_INVALID_OPCODE

#define EXCEPT_X64_INVALID_OPCODE   6

Definition at line 140 of file DebugSupport.h.

◆ EXCEPT_X64_INVALID_TSS

#define EXCEPT_X64_INVALID_TSS   10

Definition at line 142 of file DebugSupport.h.

◆ EXCEPT_X64_MACHINE_CHECK

#define EXCEPT_X64_MACHINE_CHECK   18

Definition at line 149 of file DebugSupport.h.

◆ EXCEPT_X64_NMI

#define EXCEPT_X64_NMI   2

Definition at line 136 of file DebugSupport.h.

◆ EXCEPT_X64_OVERFLOW

#define EXCEPT_X64_OVERFLOW   4

Definition at line 138 of file DebugSupport.h.

◆ EXCEPT_X64_PAGE_FAULT

#define EXCEPT_X64_PAGE_FAULT   14

Definition at line 146 of file DebugSupport.h.

◆ EXCEPT_X64_SEG_NOT_PRESENT

#define EXCEPT_X64_SEG_NOT_PRESENT   11

Definition at line 143 of file DebugSupport.h.

◆ EXCEPT_X64_SIMD

#define EXCEPT_X64_SIMD   19

Definition at line 150 of file DebugSupport.h.

◆ EXCEPT_X64_STACK_FAULT

#define EXCEPT_X64_STACK_FAULT   12

Definition at line 144 of file DebugSupport.h.

◆ MAX_AARCH64_EXCEPTION

#define MAX_AARCH64_EXCEPTION   EXCEPT_AARCH64_SERROR

For coding convenience, define the maximum valid ARM exception.

Definition at line 525 of file DebugSupport.h.

◆ MAX_ARM_EXCEPTION

#define MAX_ARM_EXCEPTION   EXCEPT_ARM_FIQ

For coding convenience, define the maximum valid ARM exception.

Definition at line 485 of file DebugSupport.h.

◆ MAX_EBC_EXCEPTION

#define MAX_EBC_EXCEPTION   EXCEPT_EBC_STEP

For coding convenience, define the maximum valid EBC exception.

Definition at line 451 of file DebugSupport.h.

Typedef Documentation

◆ EFI_DEBUG_SUPPORT_PROTOCOL

Definition at line 21 of file DebugSupport.h.

◆ EFI_EXCEPTION_CALLBACK

typedef 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.

Parameters
ExceptionTypeException types in EBC, IA-32, x64, or IPF.
SystemContextException content.

Definition at line 682 of file DebugSupport.h.

◆ EFI_EXCEPTION_TYPE

Processor exception to be hooked. All exception types for IA32, X64, Itanium and EBC processors are defined.

Definition at line 35 of file DebugSupport.h.

◆ EFI_GET_MAXIMUM_PROCESSOR_INDEX

typedef 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 RegisterPeriodicCallback() and RegisterExceptionCallback().

Parameters
ThisA pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
MaxProcessorIndexPointer to a caller-allocated UINTN in which the maximum supported processor index is returned.
Return values
EFI_SUCCESSThe function completed successfully.

Definition at line 728 of file DebugSupport.h.

◆ EFI_INVALIDATE_INSTRUCTION_CACHE

typedef 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. Subsequent execution in this range causes a fresh memory fetch to retrieve code to be executed.

Parameters
ThisA pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
ProcessorIndexSpecifies which processor's instruction cache is to be invalidated.
StartSpecifies the physical base of the memory range to be invalidated.
LengthSpecifies the minimum number of bytes in the processor's instruction cache to invalidate.
Return values
EFI_SUCCESSThe function completed successfully.

Definition at line 796 of file DebugSupport.h.

◆ EFI_PERIODIC_CALLBACK

typedef VOID(EFIAPI * EFI_PERIODIC_CALLBACK) (IN OUT EFI_SYSTEM_CONTEXT SystemContext)

Registers and enables the on-target debug agent's periodic entry point.

Parameters
SystemContextException content.

Definition at line 695 of file DebugSupport.h.

◆ EFI_REGISTER_EXCEPTION_CALLBACK

typedef 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.

Parameters
ThisA pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
ProcessorIndexSpecifies which processor the callback function applies to.
ExceptionCallbackA pointer to a function of type EXCEPTION_CALLBACK that is called when the processor exception specified by ExceptionType occurs.
ExceptionTypeSpecifies which processor exception to hook.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_ALREADY_STARTEDNon-NULL PeriodicCallback parameter when a callback function was previously registered.
EFI_OUT_OF_RESOURCESSystem has insufficient memory resources to register new callback function.

Definition at line 774 of file DebugSupport.h.

◆ EFI_REGISTER_PERIODIC_CALLBACK

typedef 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.

Parameters
ThisA pointer to the EFI_DEBUG_SUPPORT_PROTOCOL instance.
ProcessorIndexSpecifies which processor the callback function applies to.
PeriodicCallbackA pointer to a function of type PERIODIC_CALLBACK that is the main periodic entry point of the debug agent.
Return values
EFI_SUCCESSThe function completed successfully.
EFI_ALREADY_STARTEDNon-NULL PeriodicCallback parameter when a callback function was previously registered.
EFI_OUT_OF_RESOURCESSystem has insufficient memory resources to register new callback function.

Definition at line 750 of file DebugSupport.h.

Enumeration Type Documentation

◆ EFI_INSTRUCTION_SET_ARCHITECTURE

Machine type definition

Enumerator
IsaIa32 

0x014C

IsaX64 

0x8664

IsaIpf 

0x0200

IsaEbc 

0x0EBC

IsaArm 

0x01c2

IsaAArch64 

0xAA64

Definition at line 703 of file DebugSupport.h.