3 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
4 SPDX-License-Identifier: BSD-2-Clause-Patent
9 #ifndef _EFI_EDB_SYMBOL_H_
10 #define _EFI_EDB_SYMBOL_H_
15 // The default base address is 0x10000000
17 #define EFI_DEBUGGER_DEFAULT_LINK_IMAGEBASE 0x10000000
19 #define EFI_DEBUGGER_MAX_SYMBOL_ADDRESS_DELTA_VALUE 0x100000 // 1 M delta
22 EdbMatchSymbolTypeSameAdderss
,
23 EdbMatchSymbolTypeNearestAddress
,
24 EdbMatchSymbolTypeLowerAddress
,
25 EdbMatchSymbolTypeUpperAddress
,
26 EdbMatchSymbolTypeMax
,
27 } EDB_MATCH_SYMBOL_TYPE
;
30 EdbEbcImageRvaSearchTypeAny
,
31 EdbEbcImageRvaSearchTypeFirst
,
32 EdbEbcImageRvaSearchTypeLast
,
33 EdbEbcImageRvaSearchTypeMax
,
34 } EDB_EBC_IMAGE_RVA_SEARCH_TYPE
;
38 Find symbol by address.
40 @param Address - Symbol address
41 @param Type - Search type
42 @param RetObject - Symbol object
43 @param RetEntry - Symbol entry
45 @return Nearest symbol address
49 EbdFindSymbolAddress (
51 IN EDB_MATCH_SYMBOL_TYPE Type
,
52 OUT EFI_DEBUGGER_SYMBOL_OBJECT
**Object
,
53 OUT EFI_DEBUGGER_SYMBOL_ENTRY
**Entry
58 Load symbol file by name.
60 @param DebuggerPrivate - EBC Debugger private data structure
61 @param FileName - Symbol file name
62 @param BufferSize - Symbol file buffer size
63 @param Buffer - Symbol file buffer
65 @retval EFI_SUCCESS - load symbol successfully
70 IN EFI_DEBUGGER_PRIVATE_DATA
*DebuggerPrivate
,
78 Unload symbol file by name.
80 @param DebuggerPrivate - EBC Debugger private data structure
81 @param FileName - Symbol file name
83 @retval EFI_SUCCESS - unload symbol successfully
88 IN EFI_DEBUGGER_PRIVATE_DATA
*DebuggerPrivate
,
96 @param DebuggerPrivate - EBC Debugger private data structure
97 @param FileName - Symbol file name
98 @param SearchType - Search type for Object
100 @retval EFI_SUCCESS - Patch symbol RVA successfully
101 @retval EFI_NOT_FOUND - Symbol RVA base not found
106 IN EFI_DEBUGGER_PRIVATE_DATA
*DebuggerPrivate
,
108 IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType
115 @param DebuggerPrivate - EBC Debugger private data structure
116 @param MapFileName - Symbol file name
117 @param FileName - Code file name
118 @param BufferSize - Code file buffer size
119 @param Buffer - Code file buffer
121 @retval EFI_SUCCESS - Code loaded successfully
126 IN EFI_DEBUGGER_PRIVATE_DATA
*DebuggerPrivate
,
127 IN CHAR16
*MapFileName
,
137 @param DebuggerPrivate - EBC Debugger private data structure
138 @param MapFileName - Symbol file name
139 @param FileName - Code file name
140 @param Buffer - Code file buffer
142 @retval EFI_SUCCESS - Code unloaded successfully
147 IN EFI_DEBUGGER_PRIVATE_DATA
*DebuggerPrivate
,
148 IN CHAR16
*MapFileName
,
157 @param DebuggerPrivate - EBC Debugger private data structure
158 @param MapFileName - Symbol file name
159 @param CodeFileName - Code file name
160 @param SourceBufferSize- Code buffer size
161 @param SourceBuffer - Code buffer
163 @retval EFI_SUCCESS - CodeBuffer added successfully
168 IN EFI_DEBUGGER_PRIVATE_DATA
*DebuggerPrivate
,
169 IN CHAR16
*MapFileName
,
170 IN CHAR16
*CodeFileName
,
171 IN UINTN SourceBufferSize
,
172 IN VOID
*SourceBuffer
179 @param DebuggerPrivate - EBC Debugger private data structure
180 @param MapFileName - Symbol file name
181 @param CodeFileName - Code file name
182 @param SourceBuffer - Code buffer
184 @retval EFI_SUCCESS - CodeBuffer deleted successfully
188 EdbDeleteCodeBuffer (
189 IN EFI_DEBUGGER_PRIVATE_DATA
*DebuggerPrivate
,
190 IN CHAR16
*MapFileName
,
191 IN CHAR16
*CodeFileName
,
192 IN VOID
*SourceBuffer
197 Find the symbol string according to address.
199 @param Address - Symbol address
201 @return Symbol string
213 @param Address - Instruction address
214 @param IsPrint - Whether need to print
216 @retval 1 - find the source
217 @retval 0 - not find the source
228 Convert a symbol to an address.
230 @param Symbol - Symbol name
231 @param Address - Symbol address
233 @retval EFI_SUCCESS - symbol found and address returned.
234 @retval EFI_NOT_FOUND - symbol not found
235 @retval EFI_NO_MAPPING - duplicated symbol not found