]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbSupport.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebugger / EdbSupport.h
1 /** @file
2
3 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
4 SPDX-License-Identifier: BSD-2-Clause-Patent
5
6
7 **/
8
9 #ifndef _EFI_EDB_SUPPORT_H_
10 #define _EFI_EDB_SUPPORT_H_
11
12 #include <Uefi.h>
13
14 #define EFI_DEBUG_PROMPT_STRING L"EDB > "
15 #define EFI_DEBUG_PROMPT_COLUMN 5
16 #define EFI_DEBUG_INPUS_BUFFER_SIZE 64
17
18 #define EFI_DEBUGGER_LINE_NUMBER_IN_PAGE 0x10
19
20 #define EFI_DEBUG_MAX_PRINT_BUFFER (80 * 4)
21
22 /**
23
24 Convert hex string to uint.
25
26 @param Str - The string
27
28 **/
29 UINTN
30 EFIAPI
31 Xtoi (
32 CHAR16 *Str
33 );
34
35 /**
36
37 Convert hex string to uint.
38
39 @param Str - The string
40
41 **/
42 UINT64
43 EFIAPI
44 LXtoi (
45 CHAR16 *Str
46 );
47
48 /**
49
50 Convert hex string to uint.
51
52 @param Str - The string
53
54 **/
55 UINTN
56 EFIAPI
57 Atoi (
58 CHAR16 *Str
59 );
60
61 /**
62
63 Convert hex string to uint.
64
65 @param Str - The string
66
67 **/
68 UINTN
69 EFIAPI
70 AsciiXtoi (
71 CHAR8 *Str
72 );
73
74 /**
75
76 Convert hex string to uint.
77
78 @param Str - The string
79
80 **/
81 UINTN
82 EFIAPI
83 AsciiAtoi (
84 CHAR8 *Str
85 );
86
87 /**
88 Compare the Unicode and Ascii string pointed by String to the string pointed by String2.
89
90 @param String - Unicode String to process
91
92 @param String2 - Ascii string to process
93
94 @return Return a positive integer if String is lexicall greater than String2; Zero if
95 the two strings are identical; and a negative interger if String is lexically
96 less than String2.
97
98 **/
99 INTN
100 EFIAPI
101 StrCmpUnicodeAndAscii (
102 IN CHAR16 *String,
103 IN CHAR8 *String2
104 );
105
106 /**
107
108 Compare the Unicode string pointed by String to the string pointed by String2.
109
110 @param String - Unicode String to process
111 @param String2 - Unicode string to process
112
113 @return Return a positive integer if String is lexically greater than String2; Zero if
114 the two strings are identical; and a negative integer if String is lexically
115 less than String2.
116
117 **/
118 INTN
119 EFIAPI
120 StriCmp (
121 IN CHAR16 *String,
122 IN CHAR16 *String2
123 );
124
125 /**
126
127 Compare the Unicode and Ascii string pointed by String to the string pointed by String2.
128
129 @param String - Unicode String to process
130 @param String2 - Ascii string to process
131
132 @return Return a positive integer if String is lexically greater than String2; Zero if
133 the two strings are identical; and a negative integer if String is lexically
134 less than String2.
135
136 **/
137 INTN
138 EFIAPI
139 StriCmpUnicodeAndAscii (
140 IN CHAR16 *String,
141 IN CHAR8 *String2
142 );
143
144 /**
145
146 Verify if the string is end with the sub string.
147
148 @param Str - The string where to search the sub string
149 @param SubStr - The substring.
150
151 **/
152 BOOLEAN
153 EFIAPI
154 StrEndWith (
155 IN CHAR16 *Str,
156 IN CHAR16 *SubStr
157 );
158
159 /**
160 Duplicate a string.
161
162 @param Src The string to be duplicated.
163
164 **/
165 CHAR16 *
166 EFIAPI
167 StrDuplicate (
168 IN CHAR16 *Src
169 );
170
171 /**
172
173 Find the next token after one or more specified characters.
174
175 @param String Point to the string where to find the substring.
176 @param CharSet Point to the string to be found.
177
178 **/
179 CHAR16 *
180 EFIAPI
181 StrGetNewTokenLine (
182 IN CHAR16 *String,
183 IN CHAR16 *CharSet
184 );
185
186 /**
187
188 Find the next token after one or more specified characters.
189
190 @param CharSet Point to the string to be found.
191
192 **/
193 CHAR16 *
194 EFIAPI
195 StrGetNextTokenLine (
196 IN CHAR16 *CharSet
197 );
198
199 /**
200
201 Find the next token after one specificed characters.
202
203 @param String Point to the string where to find the substring.
204 @param CharSet Point to the string to be found.
205
206 **/
207 CHAR16 *
208 EFIAPI
209 StrGetNewTokenField (
210 IN CHAR16 *String,
211 IN CHAR16 *CharSet
212 );
213
214 /**
215
216 Find the next token after one specificed characters.
217
218 @param CharSet Point to the string to be found.
219
220 **/
221 CHAR16 *
222 EFIAPI
223 StrGetNextTokenField (
224 IN CHAR16 *CharSet
225 );
226
227 /**
228
229 Patch a character to the end of a string.
230
231 @param Buffer The string to be patched.
232 @param Patch The patch character.
233
234 **/
235 VOID
236 EFIAPI
237 PatchForStrTokenAfter (
238 IN CHAR16 *Buffer,
239 IN CHAR16 Patch
240 );
241
242 /**
243 Patch a character at the beginning of a string.
244
245 @param Buffer The string to be patched.
246 @param Patch The patch character.
247
248 **/
249 VOID
250 EFIAPI
251 PatchForStrTokenBefore (
252 IN CHAR16 *Buffer,
253 IN CHAR16 Patch
254 );
255
256 /**
257
258 Find the next token after one or more specified characters.
259
260 @param String Point to the string where to find the substring.
261 @param CharSet Point to the string to be found.
262
263 **/
264 CHAR8 *
265 EFIAPI
266 AsciiStrGetNewTokenLine (
267 IN CHAR8 *String,
268 IN CHAR8 *CharSet
269 );
270
271 /**
272
273 Find the next token after one or more specified characters.
274
275 @param CharSet Point to the string to be found.
276
277 **/
278 CHAR8 *
279 EFIAPI
280 AsciiStrGetNextTokenLine (
281 IN CHAR8 *CharSet
282 );
283
284 /**
285
286 Find the next token after one specificed characters.
287
288 @param String Point to the string where to find the substring.
289 @param CharSet Point to the string to be found.
290
291 **/
292 CHAR8 *
293 EFIAPI
294 AsciiStrGetNewTokenField (
295 IN CHAR8 *String,
296 IN CHAR8 *CharSet
297 );
298
299 /**
300
301 Find the next token after one specificed characters.
302
303 @param CharSet Point to the string to be found.
304
305 **/
306 CHAR8 *
307 EFIAPI
308 AsciiStrGetNextTokenField (
309 IN CHAR8 *CharSet
310 );
311
312 /**
313
314 Patch a character to the end of a string.
315
316 @param Buffer The string to be patched.
317 @param Patch The patch character.
318
319 **/
320 VOID
321 EFIAPI
322 PatchForAsciiStrTokenAfter (
323 IN CHAR8 *Buffer,
324 IN CHAR8 Patch
325 );
326
327 /**
328 Patch a character at the beginning of a string.
329
330 @param Buffer The string to be patched.
331 @param Patch The patch character.
332
333 **/
334 VOID
335 EFIAPI
336 PatchForAsciiStrTokenBefore (
337 IN CHAR8 *Buffer,
338 IN CHAR8 Patch
339 );
340
341 /**
342
343 Shell Library.
344 Get user input.
345
346 @param Prompt The prompt string.
347 @param InStr Point to the input string.
348 @param StrLen The max length of string user can input.
349
350 **/
351 VOID
352 EFIAPI
353 Input (
354 IN CHAR16 *Prompt OPTIONAL,
355 OUT CHAR16 *InStr,
356 IN UINTN StrLen
357 );
358
359 /**
360
361 SetPageBreak.
362
363 **/
364 BOOLEAN
365 EFIAPI
366 SetPageBreak (
367 VOID
368 );
369
370 /**
371 Print a Unicode string to the output device.
372
373 @param Format A Null-terminated Unicode format string.
374 @param ... The variable argument list that contains pointers to Null-
375 terminated Unicode strings to be printed
376
377 **/
378 UINTN
379 EFIAPI
380 EDBPrint (
381 IN CONST CHAR16 *Format,
382 ...
383 );
384
385 /**
386 Print a Unicode string to the output buffer.
387
388 @param Buffer A pointer to the output buffer for the produced Null-terminated
389 Unicode string.
390 @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
391 @param Format A Null-terminated Unicode format string.
392 @param ... The variable argument list that contains pointers to Null-
393 terminated Unicode strings to be printed
394
395 **/
396 UINTN
397 EFIAPI
398 EDBSPrint (
399 OUT CHAR16 *Buffer,
400 IN INTN BufferSize,
401 IN CONST CHAR16 *Format,
402 ...
403 );
404
405 /**
406 Print a Unicode string to the output buffer with specified offset..
407
408 @param Buffer A pointer to the output buffer for the produced Null-terminated
409 Unicode string.
410 @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer.
411 @param Offset The offset of the buffer.
412 @param Format A Null-terminated Unicode format string.
413 @param ... The variable argument list that contains pointers to Null-
414 terminated Unicode strings to be printed
415
416 **/
417 UINTN
418 EFIAPI
419 EDBSPrintWithOffset (
420 OUT CHAR16 *Buffer,
421 IN INTN BufferSize,
422 IN UINTN Offset,
423 IN CONST CHAR16 *Format,
424 ...
425 );
426
427 /**
428
429 Read a file.
430 If ScanFs is FLASE, it will use DebuggerPrivate->Vol as default Fs.
431 If ScanFs is TRUE, it will scan all FS and check the file.
432 If there is only one file match the name, it will be read.
433 If there is more than one file match the name, it will return Error.
434
435 @param DebuggerPrivate - EBC Debugger private data structure
436 @param FileName - The file to be read.
437 @param BufferSize - The file buffer size
438 @param Buffer - The file buffer
439 @param ScanFs - Need Scan all FS
440
441 @retval EFI_SUCCESS - read file successfully
442 @retval EFI_NOT_FOUND - file not found
443 @retval EFI_NO_MAPPING - there is duplicated files found
444
445 **/
446 EFI_STATUS
447 EFIAPI
448 ReadFileToBuffer (
449 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
450 IN CHAR16 *FileName,
451 OUT UINTN *BufferSize,
452 OUT VOID **Buffer,
453 IN BOOLEAN ScanFs
454 );
455
456 /**
457
458 Get file name under this dir with index
459
460 @param DebuggerPrivate - EBC Debugger private data structure
461 @param DirName - The dir to be read.
462 @param FileName - The file name pattern under this dir
463 @param Index - The file index under this dir
464
465 @return File Name which match the pattern and index.
466
467 **/
468 CHAR16 *
469 EFIAPI
470 GetFileNameUnderDir (
471 IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate,
472 IN CHAR16 *DirName,
473 IN CHAR16 *FileName,
474 IN OUT UINTN *Index
475 );
476
477 #endif