EdbEbcImageRvaSearchTypeMax,\r
} EDB_EBC_IMAGE_RVA_SEARCH_TYPE;\r
\r
+/**\r
+\r
+ Find symbol by address.\r
+\r
+ @param Address - Symbol address\r
+ @param Type - Search type\r
+ @param RetObject - Symbol object\r
+ @param RetEntry - Symbol entry\r
+\r
+ @return Nearest symbol address\r
+\r
+**/\r
UINTN\r
EbdFindSymbolAddress (\r
IN UINTN Address,\r
OUT EFI_DEBUGGER_SYMBOL_ENTRY **Entry\r
);\r
\r
+/**\r
+\r
+ Load symbol file by name.\r
+\r
+ @param DebuggerPrivate - EBC Debugger private data structure\r
+ @param FileName - Symbol file name\r
+ @param BufferSize - Symbol file buffer size\r
+ @param Buffer - Symbol file buffer\r
+\r
+ @retval EFI_SUCCESS - load symbol successfully\r
+\r
+**/\r
EFI_STATUS\r
EdbLoadSymbol (\r
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
IN VOID *Buffer\r
);\r
\r
+/**\r
+\r
+ Unload symbol file by name.\r
+\r
+ @param DebuggerPrivate - EBC Debugger private data structure\r
+ @param FileName - Symbol file name\r
+\r
+ @retval EFI_SUCCESS - unload symbol successfully\r
+\r
+**/\r
EFI_STATUS\r
EdbUnloadSymbol (\r
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
IN CHAR16 *FileName\r
);\r
\r
+/**\r
+\r
+ Patch symbol RVA.\r
+\r
+ @param DebuggerPrivate - EBC Debugger private data structure\r
+ @param FileName - Symbol file name\r
+ @param SearchType - Search type for Object\r
+\r
+ @retval EFI_SUCCESS - Patch symbol RVA successfully\r
+ @retval EFI_NOT_FOUND - Symbol RVA base not found\r
+\r
+**/\r
EFI_STATUS\r
EdbPatchSymbolRVA (\r
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType\r
);\r
\r
+/**\r
+\r
+ Load code.\r
+\r
+ @param DebuggerPrivate - EBC Debugger private data structure\r
+ @param MapFileName - Symbol file name\r
+ @param FileName - Code file name\r
+ @param BufferSize - Code file buffer size\r
+ @param Buffer - Code file buffer\r
+\r
+ @retval EFI_SUCCESS - Code loaded successfully\r
+\r
+**/\r
EFI_STATUS\r
EdbLoadCode (\r
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
IN VOID *Buffer\r
);\r
\r
+/**\r
+\r
+ Unload code.\r
+\r
+ @param DebuggerPrivate - EBC Debugger private data structure\r
+ @param MapFileName - Symbol file name\r
+ @param FileName - Code file name\r
+ @param Buffer - Code file buffer\r
+\r
+ @retval EFI_SUCCESS - Code unloaded successfully\r
+\r
+**/\r
EFI_STATUS\r
EdbUnloadCode (\r
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
OUT VOID **Buffer\r
);\r
\r
+/**\r
+\r
+ Add code buffer.\r
+\r
+ @param DebuggerPrivate - EBC Debugger private data structure\r
+ @param MapFileName - Symbol file name\r
+ @param CodeFileName - Code file name\r
+ @param SourceBufferSize- Code buffer size\r
+ @param SourceBuffer - Code buffer\r
+\r
+ @retval EFI_SUCCESS - CodeBuffer added successfully\r
+\r
+**/\r
EFI_STATUS\r
EdbAddCodeBuffer (\r
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
IN VOID *SourceBuffer\r
);\r
\r
+/**\r
+\r
+ Delete code buffer.\r
+\r
+ @param DebuggerPrivate - EBC Debugger private data structure\r
+ @param MapFileName - Symbol file name\r
+ @param CodeFileName - Code file name\r
+ @param SourceBuffer - Code buffer\r
+\r
+ @retval EFI_SUCCESS - CodeBuffer deleted successfully\r
+\r
+**/\r
EFI_STATUS\r
EdbDeleteCodeBuffer (\r
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
IN VOID *SourceBuffer\r
);\r
\r
+/**\r
+\r
+ Find the symbol string according to address.\r
+\r
+ @param Address - Symbol address\r
+\r
+ @return Symbol string\r
+\r
+**/\r
CHAR8 *\r
FindSymbolStr (\r
IN UINTN Address\r
);\r
\r
+/**\r
+\r
+ Print source.\r
+\r
+ @param Address - Instruction address\r
+ @param IsPrint - Whether need to print\r
+\r
+ @retval 1 - find the source\r
+ @retval 0 - not find the source\r
+\r
+**/\r
UINTN\r
EdbPrintSource (\r
IN UINTN Address,\r
IN BOOLEAN IsPrint\r
);\r
\r
+/**\r
+\r
+ Convert a symbol to an address.\r
+\r
+ @param Symbol - Symbol name\r
+ @param Address - Symbol address\r
+\r
+ @retval EFI_SUCCESS - symbol found and address returned.\r
+ @retval EFI_NOT_FOUND - symbol not found\r
+ @retval EFI_NO_MAPPING - duplicated symbol not found\r
+\r
+**/\r
EFI_STATUS\r
Symboltoi (\r
IN CHAR16 *Symbol,\r