/** @file | |
Copyright (c) 2007, Intel Corporation. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
**/ | |
#ifndef _EFI_EDB_SUPPORT_H_ | |
#define _EFI_EDB_SUPPORT_H_ | |
#include <Uefi.h> | |
#define EFI_DEBUG_PROMPT_STRING L"EDB > " | |
#define EFI_DEBUG_PROMPT_COLUMN 5 | |
#define EFI_DEBUG_INPUS_BUFFER_SIZE 64 | |
#define EFI_DEBUGGER_LINE_NUMBER_IN_PAGE 0x10 | |
#define EFI_DEBUG_MAX_PRINT_BUFFER (80 * 4) | |
/** | |
Convert hex string to uint. | |
@param Str - The string | |
**/ | |
UINTN | |
EFIAPI | |
Xtoi ( | |
CHAR16 *Str | |
); | |
/** | |
Convert hex string to uint. | |
@param Str - The string | |
**/ | |
UINT64 | |
EFIAPI | |
LXtoi ( | |
CHAR16 *Str | |
); | |
/** | |
Convert hex string to uint. | |
@param Str - The string | |
**/ | |
UINTN | |
EFIAPI | |
Atoi ( | |
CHAR16 *Str | |
); | |
/** | |
Convert hex string to uint. | |
@param Str - The string | |
**/ | |
UINTN | |
EFIAPI | |
AsciiXtoi ( | |
CHAR8 *Str | |
); | |
/** | |
Convert hex string to uint. | |
@param Str - The string | |
**/ | |
UINTN | |
EFIAPI | |
AsciiAtoi ( | |
CHAR8 *Str | |
); | |
/** | |
Compare the Unicode and Ascii string pointed by String to the string pointed by String2. | |
@param String - Unicode String to process | |
@param String2 - Ascii string to process | |
@return Return a positive integer if String is lexicall greater than String2; Zero if | |
the two strings are identical; and a negative interger if String is lexically | |
less than String2. | |
**/ | |
INTN | |
EFIAPI | |
StrCmpUnicodeAndAscii ( | |
IN CHAR16 *String, | |
IN CHAR8 *String2 | |
); | |
/** | |
Compare the Unicode string pointed by String to the string pointed by String2. | |
@param String - Unicode String to process | |
@param String2 - Unicode string to process | |
@return Return a positive integer if String is lexically greater than String2; Zero if | |
the two strings are identical; and a negative integer if String is lexically | |
less than String2. | |
**/ | |
INTN | |
EFIAPI | |
StriCmp ( | |
IN CHAR16 *String, | |
IN CHAR16 *String2 | |
); | |
/** | |
Compare the Unicode and Ascii string pointed by String to the string pointed by String2. | |
@param String - Unicode String to process | |
@param String2 - Ascii string to process | |
@return Return a positive integer if String is lexically greater than String2; Zero if | |
the two strings are identical; and a negative integer if String is lexically | |
less than String2. | |
**/ | |
INTN | |
EFIAPI | |
StriCmpUnicodeAndAscii ( | |
IN CHAR16 *String, | |
IN CHAR8 *String2 | |
); | |
/** | |
Verify if the string is end with the sub string. | |
@param Str - The string where to search the sub string | |
@param SubStr - The substring. | |
**/ | |
BOOLEAN | |
EFIAPI | |
StrEndWith ( | |
IN CHAR16 *Str, | |
IN CHAR16 *SubStr | |
); | |
/** | |
Duplicate a string. | |
@param Src The string to be duplicated. | |
**/ | |
CHAR16 * | |
EFIAPI | |
StrDuplicate ( | |
IN CHAR16 *Src | |
); | |
/** | |
Find the next token after one or more specified characters. | |
@param String Point to the string where to find the substring. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR16 * | |
EFIAPI | |
StrGetNewTokenLine ( | |
IN CHAR16 *String, | |
IN CHAR16 *CharSet | |
); | |
/** | |
Find the next token after one or more specified characters. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR16 * | |
EFIAPI | |
StrGetNextTokenLine ( | |
IN CHAR16 *CharSet | |
); | |
/** | |
Find the next token after one specificed characters. | |
@param String Point to the string where to find the substring. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR16 * | |
EFIAPI | |
StrGetNewTokenField ( | |
IN CHAR16 *String, | |
IN CHAR16 *CharSet | |
); | |
/** | |
Find the next token after one specificed characters. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR16 * | |
EFIAPI | |
StrGetNextTokenField ( | |
IN CHAR16 *CharSet | |
); | |
/** | |
Patch a character to the end of a string. | |
@param Buffer The string to be patched. | |
@param Patch The patch character. | |
**/ | |
VOID | |
EFIAPI | |
PatchForStrTokenAfter ( | |
IN CHAR16 *Buffer, | |
IN CHAR16 Patch | |
); | |
/** | |
Patch a character at the beginning of a string. | |
@param Buffer The string to be patched. | |
@param Patch The patch character. | |
**/ | |
VOID | |
EFIAPI | |
PatchForStrTokenBefore ( | |
IN CHAR16 *Buffer, | |
IN CHAR16 Patch | |
); | |
/** | |
Find the next token after one or more specified characters. | |
@param String Point to the string where to find the substring. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR8 * | |
EFIAPI | |
AsciiStrGetNewTokenLine ( | |
IN CHAR8 *String, | |
IN CHAR8 *CharSet | |
); | |
/** | |
Find the next token after one or more specified characters. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR8 * | |
EFIAPI | |
AsciiStrGetNextTokenLine ( | |
IN CHAR8 *CharSet | |
); | |
/** | |
Find the next token after one specificed characters. | |
@param String Point to the string where to find the substring. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR8 * | |
EFIAPI | |
AsciiStrGetNewTokenField ( | |
IN CHAR8 *String, | |
IN CHAR8 *CharSet | |
); | |
/** | |
Find the next token after one specificed characters. | |
@param CharSet Point to the string to be found. | |
**/ | |
CHAR8 * | |
EFIAPI | |
AsciiStrGetNextTokenField ( | |
IN CHAR8 *CharSet | |
); | |
/** | |
Patch a character to the end of a string. | |
@param Buffer The string to be patched. | |
@param Patch The patch character. | |
**/ | |
VOID | |
EFIAPI | |
PatchForAsciiStrTokenAfter ( | |
IN CHAR8 *Buffer, | |
IN CHAR8 Patch | |
); | |
/** | |
Patch a character at the beginning of a string. | |
@param Buffer The string to be patched. | |
@param Patch The patch character. | |
**/ | |
VOID | |
EFIAPI | |
PatchForAsciiStrTokenBefore ( | |
IN CHAR8 *Buffer, | |
IN CHAR8 Patch | |
); | |
/** | |
Shell Library. | |
Get user input. | |
@param Prompt The prompt string. | |
@param InStr Point to the input string. | |
@param StrLen The max length of string user can input. | |
**/ | |
VOID | |
EFIAPI | |
Input ( | |
IN CHAR16 *Prompt OPTIONAL, | |
OUT CHAR16 *InStr, | |
IN UINTN StrLen | |
); | |
/** | |
SetPageBreak. | |
**/ | |
BOOLEAN | |
EFIAPI | |
SetPageBreak ( | |
VOID | |
); | |
/** | |
Print a Unicode string to the output device. | |
@param Format A Null-terminated Unicode format string. | |
@param ... The variable argument list that contains pointers to Null- | |
terminated Unicode strings to be printed | |
**/ | |
UINTN | |
EFIAPI | |
EDBPrint ( | |
IN CONST CHAR16 *Format, | |
... | |
); | |
/** | |
Print a Unicode string to the output buffer. | |
@param Buffer A pointer to the output buffer for the produced Null-terminated | |
Unicode string. | |
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer. | |
@param Format A Null-terminated Unicode format string. | |
@param ... The variable argument list that contains pointers to Null- | |
terminated Unicode strings to be printed | |
**/ | |
UINTN | |
EFIAPI | |
EDBSPrint ( | |
OUT CHAR16 *Buffer, | |
IN INTN BufferSize, | |
IN CONST CHAR16 *Format, | |
... | |
); | |
/** | |
Print a Unicode string to the output buffer with specified offset.. | |
@param Buffer A pointer to the output buffer for the produced Null-terminated | |
Unicode string. | |
@param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer. | |
@param Offset The offset of the buffer. | |
@param Format A Null-terminated Unicode format string. | |
@param ... The variable argument list that contains pointers to Null- | |
terminated Unicode strings to be printed | |
**/ | |
UINTN | |
EFIAPI | |
EDBSPrintWithOffset ( | |
OUT CHAR16 *Buffer, | |
IN INTN BufferSize, | |
IN UINTN Offset, | |
IN CONST CHAR16 *Format, | |
... | |
); | |
/** | |
Read a file. | |
If ScanFs is FLASE, it will use DebuggerPrivate->Vol as default Fs. | |
If ScanFs is TRUE, it will scan all FS and check the file. | |
If there is only one file match the name, it will be read. | |
If there is more than one file match the name, it will return Error. | |
@param DebuggerPrivate - EBC Debugger private data structure | |
@param FileName - The file to be read. | |
@param BufferSize - The file buffer size | |
@param Buffer - The file buffer | |
@param ScanFs - Need Scan all FS | |
@retval EFI_SUCCESS - read file successfully | |
@retval EFI_NOT_FOUND - file not found | |
@retval EFI_NO_MAPPING - there is duplicated files found | |
**/ | |
EFI_STATUS | |
EFIAPI | |
ReadFileToBuffer ( | |
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, | |
IN CHAR16 *FileName, | |
OUT UINTN *BufferSize, | |
OUT VOID **Buffer, | |
IN BOOLEAN ScanFs | |
); | |
/** | |
Get file name under this dir with index | |
@param DebuggerPrivate - EBC Debugger private data structure | |
@param DirName - The dir to be read. | |
@param FileName - The file name pattern under this dir | |
@param Index - The file index under this dir | |
@return File Name which match the pattern and index. | |
**/ | |
CHAR16 * | |
EFIAPI | |
GetFileNameUnderDir ( | |
IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, | |
IN CHAR16 *DirName, | |
IN CHAR16 *FileName, | |
IN OUT UINTN *Index | |
); | |
#endif |