/** @file\r
Common library assistance routines.\r
\r
-Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2004 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
\r
#include <Common/UefiBaseTypes.h>\r
#include <Common/BuildVersion.h>\r
+#include <assert.h>\r
#define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination\r
\r
#define MAX_LONG_FILE_PATH 500\r
\r
+#define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL)\r
+#define MAX_UINT32 ((UINT32)0xFFFFFFFF)\r
+#define MAX_UINT16 ((UINT16)0xFFFF)\r
+#define MAX_UINT8 ((UINT8)0xFF)\r
+#define ARRAY_SIZE(Array) (sizeof (Array) / sizeof ((Array)[0]))\r
+#define ASCII_RSIZE_MAX 1000000\r
+#undef RSIZE_MAX\r
+#define RSIZE_MAX 1000000\r
+\r
+#define IS_COMMA(a) ((a) == L',')\r
+#define IS_HYPHEN(a) ((a) == L'-')\r
+#define IS_DOT(a) ((a) == L'.')\r
+#define IS_LEFT_PARENTH(a) ((a) == L'(')\r
+#define IS_RIGHT_PARENTH(a) ((a) == L')')\r
+#define IS_SLASH(a) ((a) == L'/')\r
+#define IS_NULL(a) ((a) == L'\0')\r
+\r
+#define ASSERT(x) assert(x)\r
+\r
#ifdef __cplusplus\r
extern "C" {\r
#endif\r
LongFilePath (\r
IN CHAR8 *FileName\r
);\r
+\r
+UINTN\r
+StrLen (\r
+ CONST CHAR16 *String\r
+ );\r
+\r
+VOID *\r
+AllocateCopyPool (\r
+ UINTN AllocationSize,\r
+ CONST VOID *Buffer\r
+ );\r
+\r
+INTN\r
+StrnCmp (\r
+ CONST CHAR16 *FirstString,\r
+ CONST CHAR16 *SecondString,\r
+ UINTN Length\r
+ );\r
+\r
+RETURN_STATUS\r
+StrToGuid (\r
+ CONST CHAR16 *String,\r
+ EFI_GUID *Guid\r
+ );\r
+\r
+RETURN_STATUS\r
+StrHexToBytes (\r
+ CONST CHAR16 *String,\r
+ UINTN Length,\r
+ UINT8 *Buffer,\r
+ UINTN MaxBufferSize\r
+ );\r
+\r
+UINTN\r
+InternalHexCharToUintn (\r
+ CHAR16 Char\r
+ );\r
+\r
+VOID *\r
+InternalAllocateCopyPool (\r
+ UINTN AllocationSize,\r
+ CONST VOID *Buffer\r
+ );\r
+\r
+BOOLEAN\r
+InternalIsDecimalDigitCharacter (\r
+ CHAR16 Char\r
+ );\r
+\r
+UINT32\r
+SwapBytes32 (\r
+ UINT32 Value\r
+ );\r
+\r
+UINT16\r
+SwapBytes16 (\r
+ UINT16 Value\r
+ );\r
+\r
+EFI_GUID *\r
+CopyGuid (\r
+ EFI_GUID *DestinationGuid,\r
+ CONST EFI_GUID *SourceGuid\r
+ );\r
+\r
+UINT64\r
+WriteUnaligned64 (\r
+ UINT64 *Buffer,\r
+ UINT64 Value\r
+ );\r
+\r
+UINT64\r
+ReadUnaligned64 (\r
+ CONST UINT64 *Buffer\r
+ );\r
+\r
+UINTN\r
+StrSize (\r
+ CONST CHAR16 *String\r
+ );\r
+\r
+UINT64\r
+StrHexToUint64 (\r
+ CONST CHAR16 *String\r
+ );\r
+\r
+UINT64\r
+StrDecimalToUint64 (\r
+ CONST CHAR16 *String\r
+ );\r
+\r
+RETURN_STATUS\r
+StrHexToUint64S (\r
+ CONST CHAR16 *String,\r
+ CHAR16 **EndPointer,\r
+ UINT64 *Data\r
+ );\r
+\r
+RETURN_STATUS\r
+StrDecimalToUint64S (\r
+ CONST CHAR16 *String,\r
+ CHAR16 **EndPointer, OPTIONAL\r
+ UINT64 *Data\r
+ );\r
+\r
+VOID *\r
+ReallocatePool (\r
+ UINTN OldSize,\r
+ UINTN NewSize,\r
+ VOID *OldBuffer OPTIONAL\r
+ );\r
+\r
+VOID *\r
+InternalReallocatePool (\r
+ UINTN OldSize,\r
+ UINTN NewSize,\r
+ VOID *OldBuffer OPTIONAL\r
+ );\r
+\r
+VOID *\r
+InternalAllocateZeroPool (\r
+ UINTN AllocationSize\r
+ ) ;\r
+\r
+VOID *\r
+InternalAllocatePool (\r
+ UINTN AllocationSize\r
+ );\r
+\r
+UINTN\r
+StrnLenS (\r
+ CONST CHAR16 *String,\r
+ UINTN MaxSize\r
+ );\r
+\r
+CHAR16\r
+InternalCharToUpper (\r
+ CHAR16 Char\r
+ );\r
+\r
+INTN\r
+StrCmp (\r
+ CONST CHAR16 *FirstString,\r
+ CONST CHAR16 *SecondString\r
+ );\r
+\r
+UINT64\r
+SwapBytes64 (\r
+ UINT64 Value\r
+ );\r
+\r
+UINT64\r
+InternalMathSwapBytes64 (\r
+ UINT64 Operand\r
+ );\r
+\r
+RETURN_STATUS\r
+StrToIpv4Address (\r
+ CONST CHAR16 *String,\r
+ CHAR16 **EndPointer,\r
+ EFI_IPv4_ADDRESS *Address,\r
+ UINT8 *PrefixLength\r
+ );\r
+\r
+RETURN_STATUS\r
+StrToIpv6Address (\r
+ CONST CHAR16 *String,\r
+ CHAR16 **EndPointer,\r
+ EFI_IPv6_ADDRESS *Address,\r
+ UINT8 *PrefixLength\r
+ );\r
+\r
+RETURN_STATUS\r
+StrCpyS (\r
+ CHAR16 *Destination,\r
+ UINTN DestMax,\r
+ CONST CHAR16 *Source\r
+ );\r
+\r
+RETURN_STATUS\r
+UnicodeStrToAsciiStrS (\r
+ CONST CHAR16 *Source,\r
+ CHAR8 *Destination,\r
+ UINTN DestMax\r
+ );\r
+VOID *\r
+AllocatePool (\r
+ UINTN AllocationSize\r
+ );\r
+\r
+UINT16\r
+WriteUnaligned16 (\r
+ UINT16 *Buffer,\r
+ UINT16 Value\r
+ );\r
+\r
+UINT16\r
+ReadUnaligned16 (\r
+ CONST UINT16 *Buffer\r
+ );\r
+\r
+VOID *\r
+AllocateZeroPool (\r
+ UINTN AllocationSize\r
+ );\r
+\r
+BOOLEAN\r
+InternalIsHexaDecimalDigitCharacter (\r
+ CHAR16 Char\r
+ );\r
+\r
+BOOLEAN\r
+InternalSafeStringIsOverlap (\r
+ IN VOID *Base1,\r
+ IN UINTN Size1,\r
+ IN VOID *Base2,\r
+ IN UINTN Size2\r
+ );\r
+\r
+BOOLEAN\r
+InternalSafeStringNoStrOverlap (\r
+ IN CHAR16 *Str1,\r
+ IN UINTN Size1,\r
+ IN CHAR16 *Str2,\r
+ IN UINTN Size2\r
+ );\r
+\r
+BOOLEAN\r
+IsHexStr (\r
+ CHAR16 *Str\r
+ );\r
+\r
+UINTN\r
+Strtoi (\r
+ CHAR16 *Str\r
+ );\r
+\r
+VOID\r
+Strtoi64 (\r
+ CHAR16 *Str,\r
+ UINT64 *Data\r
+ );\r
+\r
+VOID\r
+StrToAscii (\r
+ CHAR16 *Str,\r
+ CHAR8 **AsciiStr\r
+ );\r
+\r
+CHAR16 *\r
+SplitStr (\r
+ CHAR16 **List,\r
+ CHAR16 Separator\r
+ );\r
+\r
/*++\r
\r
Routine Description:\r
- Convert FileName to the long file path, which can support larger than 260 length. \r
+ Convert FileName to the long file path, which can support larger than 260 length.\r
\r
Arguments:\r
- FileName - FileName. \r
+ FileName - FileName.\r
\r
Returns:\r
LongFilePath A pointer to the converted long file path.\r
- \r
+\r
--*/\r
\r
#ifdef __cplusplus\r
}\r
#endif\r
\r
-#define ASSERT(x) assert(x)\r
-\r
#ifdef __GNUC__\r
#include <stdio.h>\r
#include <sys/stat.h>\r