]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/Common/CommonLib.h
BaseTools: Fix compile error on VS2010
[mirror_edk2.git] / BaseTools / Source / C / Common / CommonLib.h
index 2041b89e2d0bc93577880431e82e92ce32db7d4e..dccb19223ba2bac09aa8cde2ad84050648e9dd46 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 Common library assistance routines.\r
 \r
-Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2018, 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
@@ -17,10 +17,30 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \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_UINTN MAX_ADDRESS\r
+#define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL)\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
@@ -149,6 +169,285 @@ CHAR8 *
 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
+UINTN\r
+StrHexToUintn (\r
+  CONST CHAR16              *String\r
+  );\r
+\r
+UINTN\r
+StrDecimalToUintn (\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
+StrHexToUintnS (\r
+    CONST CHAR16             *String,\r
+         CHAR16             **EndPointer,  OPTIONAL\r
+         UINTN              *Data\r
+  );\r
+\r
+RETURN_STATUS\r
+StrDecimalToUint64S (\r
+    CONST CHAR16             *String,\r
+         CHAR16             **EndPointer,  OPTIONAL\r
+         UINT64             *Data\r
+  );\r
+\r
+RETURN_STATUS\r
+StrDecimalToUintnS (\r
+    CONST CHAR16             *String,\r
+         CHAR16             **EndPointer,  OPTIONAL\r
+         UINTN              *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
@@ -166,8 +465,6 @@ Returns:
 }\r
 #endif\r
 \r
-#define ASSERT(x) assert(x)\r
-\r
 #ifdef __GNUC__\r
 #include <stdio.h>\r
 #include <sys/stat.h>\r