]> 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 2c1db759b0db0e51f0e6ea7857a69d73c4e6626c..dccb19223ba2bac09aa8cde2ad84050648e9dd46 100644 (file)
@@ -1,6 +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
@@ -9,14 +10,6 @@ http://opensource.org/licenses/bsd-license.php
 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
 \r
-Module Name:\r
-\r
-  CommonLib.h\r
-\r
-Abstract:\r
-\r
-  Common library assistance routines.\r
-\r
 **/\r
 \r
 #ifndef _EFI_COMMON_LIB_H\r
@@ -24,13 +17,34 @@ Abstract:
 \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
+\r
 //\r
 // Function declarations\r
 //\r
@@ -155,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
@@ -172,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