REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			240 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			240 lines
		
	
	
		
			8.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
 | 
						|
Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
 | 
						|
SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
**/
 | 
						|
 | 
						|
#ifndef _EFI_EDB_COMMON_H_
 | 
						|
#define _EFI_EDB_COMMON_H_
 | 
						|
 | 
						|
#include <Uefi.h>
 | 
						|
#include <Library/BaseLib.h>
 | 
						|
#include <Library/BaseMemoryLib.h>
 | 
						|
#include <Library/MemoryAllocationLib.h>
 | 
						|
#include <Library/DebugLib.h>
 | 
						|
#include <Library/UefiLib.h>
 | 
						|
#include <Library/PrintLib.h>
 | 
						|
#include <Library/UefiBootServicesTableLib.h>
 | 
						|
#include <Protocol/Ebc.h>
 | 
						|
#include <Protocol/EbcVmTest.h>
 | 
						|
#include <Protocol/DebugSupport.h>
 | 
						|
#include <Protocol/PciRootBridgeIo.h>
 | 
						|
#include <Protocol/SimpleFileSystem.h>
 | 
						|
#include <Protocol/DebuggerConfiguration.h>
 | 
						|
#include <Guid/FileInfo.h>
 | 
						|
#include <Guid/DebugImageInfoTable.h>
 | 
						|
 | 
						|
typedef UINTN EFI_DEBUG_STATUS;
 | 
						|
 | 
						|
typedef struct _EFI_DEBUGGER_PRIVATE_DATA EFI_DEBUGGER_PRIVATE_DATA;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger Command
 | 
						|
//
 | 
						|
typedef
 | 
						|
EFI_DEBUG_STATUS
 | 
						|
(*EFI_DEBUGGER_COMMAND) (
 | 
						|
  IN     CHAR16                     *CommandArg,
 | 
						|
  IN     EFI_DEBUGGER_PRIVATE_DATA  *DebuggerPrivate,
 | 
						|
  IN     EFI_EXCEPTION_TYPE         ExceptionType,
 | 
						|
  IN OUT EFI_SYSTEM_CONTEXT         SystemContext
 | 
						|
  );
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  CHAR16                  *CommandName;
 | 
						|
  CHAR16                  *CommandTitle;
 | 
						|
  CHAR16                  *CommandHelp;
 | 
						|
  CHAR16                  *CommandSyntax;
 | 
						|
  CHAR16                  *ClassName;
 | 
						|
  EFI_INPUT_KEY           CommandKey;
 | 
						|
  EFI_DEBUGGER_COMMAND    CommandFunc;
 | 
						|
} EFI_DEBUGGER_COMMAND_SET;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger Symbol
 | 
						|
//
 | 
						|
#define EFI_DEBUGGER_SYMBOL_NAME_MAX    256
 | 
						|
#define EFI_DEBUGGER_SYMBOL_ENTRY_MAX   512
 | 
						|
#define EFI_DEBUGGER_SYMBOL_OBJECT_MAX  32
 | 
						|
 | 
						|
//
 | 
						|
// We have following SYMBOL data structure:
 | 
						|
//
 | 
						|
// SYMBOL_CONTEXT -> SYMBOL_OBJECT -> SYMBOL_ENTRY (FuncXXX, 0xXXX)
 | 
						|
//                                    SYMBOL_ENTRY (VarYYY,  0xYYY)
 | 
						|
//                                    SYMBOL_ENTRY
 | 
						|
//
 | 
						|
//                   SYMBOL_OBJECT -> SYMBOL_ENTRY
 | 
						|
//                                    SYMBOL_ENTRY
 | 
						|
//
 | 
						|
//                   SYMBOL_OBJECT -> SYMBOL_ENTRY
 | 
						|
//                                    SYMBOL_ENTRY
 | 
						|
//
 | 
						|
 | 
						|
typedef enum {
 | 
						|
  EfiDebuggerSymbolFunction,
 | 
						|
  EfiDebuggerSymbolStaticFunction,
 | 
						|
  EfiDebuggerSymbolGlobalVariable,
 | 
						|
  EfiDebuggerSymbolStaticVariable,
 | 
						|
  EfiDebuggerSymbolTypeMax,
 | 
						|
} EFI_DEBUGGER_SYMBOL_TYPE;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  CHAR8                       Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
 | 
						|
  UINTN                       Rva;
 | 
						|
  EFI_DEBUGGER_SYMBOL_TYPE    Type;
 | 
						|
  CHAR8                       ObjName[EFI_DEBUGGER_SYMBOL_NAME_MAX];
 | 
						|
  CHAR8                       *CodBuffer;
 | 
						|
  UINTN                       CodBufferSize;
 | 
						|
  UINTN                       FuncOffsetBase;
 | 
						|
  CHAR8                       *SourceBuffer;
 | 
						|
} EFI_DEBUGGER_SYMBOL_ENTRY;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  CHAR16                       Name[EFI_DEBUGGER_SYMBOL_NAME_MAX];
 | 
						|
  UINTN                        EntryCount;
 | 
						|
  UINTN                        MaxEntryCount;
 | 
						|
  UINTN                        BaseAddress;
 | 
						|
  UINTN                        StartEntrypointRVA;
 | 
						|
  UINTN                        MainEntrypointRVA;
 | 
						|
  EFI_DEBUGGER_SYMBOL_ENTRY    *Entry;
 | 
						|
  VOID                         **SourceBuffer;
 | 
						|
} EFI_DEBUGGER_SYMBOL_OBJECT;
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  UINTN                         ObjectCount;
 | 
						|
  UINTN                         MaxObjectCount;
 | 
						|
  EFI_DEBUGGER_SYMBOL_OBJECT    *Object;
 | 
						|
  BOOLEAN                       DisplaySymbol;
 | 
						|
  BOOLEAN                       DisplayCodeOnly;
 | 
						|
} EFI_DEBUGGER_SYMBOL_CONTEXT;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger Breakpoint
 | 
						|
//
 | 
						|
#define EFI_DEBUGGER_BREAKPOINT_MAX  0x10
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_PHYSICAL_ADDRESS    BreakpointAddress;
 | 
						|
  UINT64                  OldInstruction;      // UINT64 is enough for an instruction
 | 
						|
  BOOLEAN                 State;
 | 
						|
} EFI_DEBUGGER_BREAKPOINT_CONTEXT;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger Call-Stack
 | 
						|
//
 | 
						|
#define EFI_DEBUGGER_CALLSTACK_MAX  0x10
 | 
						|
 | 
						|
typedef enum {
 | 
						|
  EfiDebuggerBranchTypeEbcCall,
 | 
						|
  EfiDebuggerBranchTypeEbcCallEx,
 | 
						|
  EfiDebuggerBranchTypeEbcRet,
 | 
						|
  EfiDebuggerBranchTypeEbcJmp,
 | 
						|
  EfiDebuggerBranchTypeEbcJmp8,
 | 
						|
  EfiDebuggerBranchTypeEbcMax,
 | 
						|
} EFI_DEBUGGER_BRANCH_TYPE;
 | 
						|
 | 
						|
#define EFI_DEBUGGER_CALL_MAX_PARAMETER      0x16
 | 
						|
#define EFI_DEBUGGER_CALL_DEFAULT_PARAMETER  0x8
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_PHYSICAL_ADDRESS        SourceAddress;
 | 
						|
  EFI_PHYSICAL_ADDRESS        DestAddress;
 | 
						|
  //
 | 
						|
  // We save all parameter here, because code may update the parameter as local variable.
 | 
						|
  //
 | 
						|
  UINTN                       ParameterAddr;
 | 
						|
  UINTN                       Parameter[EFI_DEBUGGER_CALL_MAX_PARAMETER];
 | 
						|
  EFI_DEBUGGER_BRANCH_TYPE    Type;
 | 
						|
} EFI_DEBUGGER_CALLSTACK_CONTEXT;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger Trace
 | 
						|
//
 | 
						|
#define EFI_DEBUGGER_TRACE_MAX  0x10
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  EFI_PHYSICAL_ADDRESS        SourceAddress;
 | 
						|
  EFI_PHYSICAL_ADDRESS        DestAddress;
 | 
						|
  EFI_DEBUGGER_BRANCH_TYPE    Type;
 | 
						|
} EFI_DEBUGGER_TRACE_CONTEXT;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger Step
 | 
						|
//
 | 
						|
typedef struct {
 | 
						|
  EFI_PHYSICAL_ADDRESS    BreakAddress;
 | 
						|
  EFI_PHYSICAL_ADDRESS    FramePointer;
 | 
						|
} EFI_DEBUGGER_STEP_CONTEXT;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger GoTil
 | 
						|
//
 | 
						|
typedef struct {
 | 
						|
  EFI_PHYSICAL_ADDRESS    BreakAddress;
 | 
						|
} EFI_DEBUGGER_GOTIL_CONTEXT;
 | 
						|
 | 
						|
//
 | 
						|
// Definition for Debugger private data structure
 | 
						|
//
 | 
						|
#define EFI_DEBUGGER_SIGNATURE  SIGNATURE_32 ('e', 'd', 'b', '!')
 | 
						|
 | 
						|
#define EFI_DEBUG_DEFAULT_INSTRUCTION_NUMBER  5
 | 
						|
 | 
						|
#define EFI_DEBUG_BREAK_TIMER_INTERVAL  10000000         // 1 second
 | 
						|
 | 
						|
#define EFI_DEBUG_FLAG_EBC             0x80000000
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_BOC       0x1
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_BOCX      0x2
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_BOR       0x4
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_BOE       0x8
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_BOT       0x10
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_STEPOVER  0x20
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_STEPOUT   0x40
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_BP        0x80
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_GT        0x100
 | 
						|
#define EFI_DEBUG_FLAG_EBC_B_BOK       0x200
 | 
						|
#define EFI_DEBUG_FLAG_EBC_BOC         (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOC)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_BOCX        (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOCX)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_BOR         (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOR)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_BOE         (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOE)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_BOT         (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOT)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_STEPOVER    (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOVER)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_STEPOUT     (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_STEPOUT)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_BP          (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BP)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_GT          (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_GT)
 | 
						|
#define EFI_DEBUG_FLAG_EBC_BOK         (EFI_DEBUG_FLAG_EBC | EFI_DEBUG_FLAG_EBC_B_BOK)
 | 
						|
 | 
						|
//
 | 
						|
// Debugger private data structure
 | 
						|
//
 | 
						|
typedef struct _EFI_DEBUGGER_PRIVATE_DATA {
 | 
						|
  UINT32                                 Signature;
 | 
						|
  EFI_INSTRUCTION_SET_ARCHITECTURE       Isa;
 | 
						|
  UINT32                                 EfiDebuggerRevision;
 | 
						|
  UINT32                                 EbcVmRevision;
 | 
						|
  EFI_DEBUGGER_CONFIGURATION_PROTOCOL    DebuggerConfiguration;
 | 
						|
  EFI_DEBUG_IMAGE_INFO_TABLE_HEADER      *DebugImageInfoTableHeader;
 | 
						|
  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL        *Vol;
 | 
						|
  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL        *PciRootBridgeIo;
 | 
						|
  EFI_DEBUGGER_COMMAND_SET               *DebuggerCommandSet;
 | 
						|
  EFI_DEBUGGER_SYMBOL_CONTEXT            DebuggerSymbolContext;
 | 
						|
  UINTN                                  DebuggerBreakpointCount;
 | 
						|
  EFI_DEBUGGER_BREAKPOINT_CONTEXT        DebuggerBreakpointContext[EFI_DEBUGGER_BREAKPOINT_MAX + 1];
 | 
						|
  UINTN                                  CallStackEntryCount;
 | 
						|
  EFI_DEBUGGER_CALLSTACK_CONTEXT         CallStackEntry[EFI_DEBUGGER_CALLSTACK_MAX + 1];
 | 
						|
  UINTN                                  TraceEntryCount;
 | 
						|
  EFI_DEBUGGER_TRACE_CONTEXT             TraceEntry[EFI_DEBUGGER_TRACE_MAX + 1];
 | 
						|
  EFI_DEBUGGER_STEP_CONTEXT              StepContext;
 | 
						|
  EFI_DEBUGGER_GOTIL_CONTEXT             GoTilContext;
 | 
						|
  EFI_PHYSICAL_ADDRESS                   InstructionScope;
 | 
						|
  UINTN                                  InstructionNumber;
 | 
						|
  UINT32                                 FeatureFlags;
 | 
						|
  UINT32                                 StatusFlags;
 | 
						|
  BOOLEAN                                EnablePageBreak;
 | 
						|
  EFI_EVENT                              BreakEvent;
 | 
						|
} EFI_DEBUGGER_PRIVATE_DATA;
 | 
						|
 | 
						|
#endif
 |