]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSymbol.h
MdeModulePkg/EbcDxe: Add comments for functions
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebugger / EdbSymbol.h
CommitLineData
e8a5ac7c 1/** @file\r
748edcd5 2\r
e8a5ac7c
DB
3Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
4This program and the accompanying materials\r
748edcd5
PB
5are licensed and made available under the terms and conditions of the BSD License\r
6which accompanies this distribution. The full text of the license may be found at\r
7http://opensource.org/licenses/bsd-license.php\r
8\r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
11\r
748edcd5 12\r
e8a5ac7c 13**/\r
748edcd5
PB
14\r
15#ifndef _EFI_EDB_SYMBOL_H_\r
16#define _EFI_EDB_SYMBOL_H_\r
17\r
18#include <Uefi.h>\r
19\r
20//\r
21// The default base address is 0x10000000\r
22//\r
23#define EFI_DEBUGGER_DEFAULT_LINK_IMAGEBASE 0x10000000\r
24\r
25#define EFI_DEBUGGER_MAX_SYMBOL_ADDRESS_DELTA_VALUE 0x100000 // 1 M delta\r
26\r
27typedef enum {\r
28 EdbMatchSymbolTypeSameAdderss,\r
29 EdbMatchSymbolTypeNearestAddress,\r
30 EdbMatchSymbolTypeLowerAddress,\r
31 EdbMatchSymbolTypeUpperAddress,\r
32 EdbMatchSymbolTypeMax,\r
33} EDB_MATCH_SYMBOL_TYPE;\r
34\r
35typedef enum {\r
36 EdbEbcImageRvaSearchTypeAny,\r
37 EdbEbcImageRvaSearchTypeFirst,\r
38 EdbEbcImageRvaSearchTypeLast,\r
39 EdbEbcImageRvaSearchTypeMax,\r
40} EDB_EBC_IMAGE_RVA_SEARCH_TYPE;\r
41\r
d138a2e9
DB
42/**\r
43\r
44 Find symbol by address.\r
45\r
46 @param Address - Symbol address\r
47 @param Type - Search type\r
48 @param RetObject - Symbol object\r
49 @param RetEntry - Symbol entry\r
50\r
51 @return Nearest symbol address\r
52\r
53**/\r
748edcd5
PB
54UINTN\r
55EbdFindSymbolAddress (\r
56 IN UINTN Address,\r
57 IN EDB_MATCH_SYMBOL_TYPE Type,\r
58 OUT EFI_DEBUGGER_SYMBOL_OBJECT **Object,\r
59 OUT EFI_DEBUGGER_SYMBOL_ENTRY **Entry\r
60 );\r
61\r
d138a2e9
DB
62/**\r
63\r
64 Load symbol file by name.\r
65\r
66 @param DebuggerPrivate - EBC Debugger private data structure\r
67 @param FileName - Symbol file name\r
68 @param BufferSize - Symbol file buffer size\r
69 @param Buffer - Symbol file buffer\r
70\r
71 @retval EFI_SUCCESS - load symbol successfully\r
72\r
73**/\r
748edcd5
PB
74EFI_STATUS\r
75EdbLoadSymbol (\r
76 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
77 IN CHAR16 *FileName,\r
78 IN UINTN BufferSize,\r
79 IN VOID *Buffer\r
80 );\r
81\r
d138a2e9
DB
82/**\r
83\r
84 Unload symbol file by name.\r
85\r
86 @param DebuggerPrivate - EBC Debugger private data structure\r
87 @param FileName - Symbol file name\r
88\r
89 @retval EFI_SUCCESS - unload symbol successfully\r
90\r
91**/\r
748edcd5
PB
92EFI_STATUS\r
93EdbUnloadSymbol (\r
94 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
95 IN CHAR16 *FileName\r
96 );\r
97\r
d138a2e9
DB
98/**\r
99\r
100 Patch symbol RVA.\r
101\r
102 @param DebuggerPrivate - EBC Debugger private data structure\r
103 @param FileName - Symbol file name\r
104 @param SearchType - Search type for Object\r
105\r
106 @retval EFI_SUCCESS - Patch symbol RVA successfully\r
107 @retval EFI_NOT_FOUND - Symbol RVA base not found\r
108\r
109**/\r
748edcd5
PB
110EFI_STATUS\r
111EdbPatchSymbolRVA (\r
112 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
113 IN CHAR16 *FileName,\r
114 IN EDB_EBC_IMAGE_RVA_SEARCH_TYPE SearchType\r
115 );\r
116\r
d138a2e9
DB
117/**\r
118\r
119 Load code.\r
120\r
121 @param DebuggerPrivate - EBC Debugger private data structure\r
122 @param MapFileName - Symbol file name\r
123 @param FileName - Code file name\r
124 @param BufferSize - Code file buffer size\r
125 @param Buffer - Code file buffer\r
126\r
127 @retval EFI_SUCCESS - Code loaded successfully\r
128\r
129**/\r
748edcd5
PB
130EFI_STATUS\r
131EdbLoadCode (\r
132 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
133 IN CHAR16 *MapFileName,\r
134 IN CHAR16 *FileName,\r
135 IN UINTN BufferSize,\r
136 IN VOID *Buffer\r
137 );\r
138\r
d138a2e9
DB
139/**\r
140\r
141 Unload code.\r
142\r
143 @param DebuggerPrivate - EBC Debugger private data structure\r
144 @param MapFileName - Symbol file name\r
145 @param FileName - Code file name\r
146 @param Buffer - Code file buffer\r
147\r
148 @retval EFI_SUCCESS - Code unloaded successfully\r
149\r
150**/\r
748edcd5
PB
151EFI_STATUS\r
152EdbUnloadCode (\r
153 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
154 IN CHAR16 *MapFileName,\r
155 IN CHAR16 *FileName,\r
156 OUT VOID **Buffer\r
157 );\r
158\r
d138a2e9
DB
159/**\r
160\r
161 Add code buffer.\r
162\r
163 @param DebuggerPrivate - EBC Debugger private data structure\r
164 @param MapFileName - Symbol file name\r
165 @param CodeFileName - Code file name\r
166 @param SourceBufferSize- Code buffer size\r
167 @param SourceBuffer - Code buffer\r
168\r
169 @retval EFI_SUCCESS - CodeBuffer added successfully\r
170\r
171**/\r
748edcd5
PB
172EFI_STATUS\r
173EdbAddCodeBuffer (\r
174 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
175 IN CHAR16 *MapFileName,\r
176 IN CHAR16 *CodeFileName,\r
177 IN UINTN SourceBufferSize,\r
178 IN VOID *SourceBuffer\r
179 );\r
180\r
d138a2e9
DB
181/**\r
182\r
183 Delete code buffer.\r
184\r
185 @param DebuggerPrivate - EBC Debugger private data structure\r
186 @param MapFileName - Symbol file name\r
187 @param CodeFileName - Code file name\r
188 @param SourceBuffer - Code buffer\r
189\r
190 @retval EFI_SUCCESS - CodeBuffer deleted successfully\r
191\r
192**/\r
748edcd5
PB
193EFI_STATUS\r
194EdbDeleteCodeBuffer (\r
195 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,\r
196 IN CHAR16 *MapFileName,\r
197 IN CHAR16 *CodeFileName,\r
198 IN VOID *SourceBuffer\r
199 );\r
200\r
d138a2e9
DB
201/**\r
202\r
203 Find the symbol string according to address.\r
204\r
205 @param Address - Symbol address\r
206\r
207 @return Symbol string\r
208\r
209**/\r
748edcd5
PB
210CHAR8 *\r
211FindSymbolStr (\r
212 IN UINTN Address\r
213 );\r
214\r
d138a2e9
DB
215/**\r
216\r
217 Print source.\r
218\r
219 @param Address - Instruction address\r
220 @param IsPrint - Whether need to print\r
221\r
222 @retval 1 - find the source\r
223 @retval 0 - not find the source\r
224\r
225**/\r
748edcd5
PB
226UINTN\r
227EdbPrintSource (\r
228 IN UINTN Address,\r
229 IN BOOLEAN IsPrint\r
230 );\r
231\r
d138a2e9
DB
232/**\r
233\r
234 Convert a symbol to an address.\r
235\r
236 @param Symbol - Symbol name\r
237 @param Address - Symbol address\r
238\r
239 @retval EFI_SUCCESS - symbol found and address returned.\r
240 @retval EFI_NOT_FOUND - symbol not found\r
241 @retval EFI_NO_MAPPING - duplicated symbol not found\r
242\r
243**/\r
748edcd5
PB
244EFI_STATUS\r
245Symboltoi (\r
246 IN CHAR16 *Symbol,\r
247 OUT UINTN *Address\r
248 );\r
249\r
250#endif\r