/** @file\r
Unicode string primatives.\r
\r
- Copyright (c) 2006, Intel Corporation<BR>\r
- All rights reserved. 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
+Copyright (c) 2004-2006 Intel Corporation. All rights reserved\r
+This software and associated documentation (if any) is furnished\r
+under a license and may only be used or copied in accordance\r
+with the terms of the license. Except as permitted by such\r
+license, no part of this software or documentation may be\r
+reproduced, stored in a retrieval system, or transmitted in any\r
+form or by any means without the express written consent of\r
+Intel Corporation.\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
**/\r
\r
#include <assert.h>\r
-#include <Base.h>\r
-#include <UefiBaseTypes.h>\r
-#include <BaseLib.h>\r
-#include <PcdLib.h>\r
-#include <CommonLib.h>\r
-#define _gPcd_FixedAtBuild_PcdMaximumUnicodeStringLength 0\r
-#define _gPcd_FixedAtBuild_PcdMaximumAsciiStringLength 0\r
+\r
+#include <Common/UefiBaseTypes.h>\r
+\r
+#include "CommonLib.h"\r
+\r
+/**\r
+ Returns the length of a Null-terminated Unicode string.\r
+\r
+ This function returns the number of Unicode characters in the Null-terminated\r
+ Unicode string specified by String.\r
+\r
+ If String is NULL, then ASSERT().\r
+\r
+ @param String Pointer to a Null-terminated Unicode string.\r
+\r
+ @return The length of String.\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+StrLen (\r
+ IN CONST CHAR16 *String\r
+ )\r
+{\r
+ UINTN Length;\r
+\r
+ ASSERT (String != NULL);\r
+\r
+ for (Length = 0; *String != L'\0'; String++, Length++) {\r
+ ;\r
+ }\r
+ return Length;\r
+}\r
+\r
+/**\r
+ Returns the length of a Null-terminated ASCII string.\r
+\r
+ This function returns the number of ASCII characters in the Null-terminated\r
+ ASCII string specified by String.\r
+\r
+ If String is NULL, then ASSERT().\r
+\r
+ @param String Pointer to a Null-terminated ASCII string.\r
+\r
+ @return The length of String.\r
+\r
+**/\r
+UINTN\r
+EFIAPI\r
+AsciiStrLen (\r
+ IN CONST CHAR8 *String\r
+ )\r
+{\r
+ UINTN Length;\r
+\r
+ ASSERT (String != NULL);\r
+\r
+ for (Length = 0; *String != '\0'; String++, Length++) {\r
+ ;\r
+ }\r
+ return Length;\r
+}\r
\r
/**\r
Copies one Null-terminated Unicode string to another Null-terminated Unicode\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
If Source and Destination overlap, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and Source contains more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated Unicode string.\r
@param Source Pointer to a Null-terminated Unicode string.\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
If Source and Destination overlap, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and Source contains more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated Unicode string.\r
@param Source Pointer to a Null-terminated Unicode string.\r
Length--;\r
}\r
\r
- // ZeroMem (Destination, Length * sizeof (*Destination));\r
memset (Destination, 0, Length * sizeof (*Destination));\r
return ReturnValue;\r
}\r
\r
-/**\r
- Returns the length of a Null-terminated Unicode string.\r
-\r
- This function returns the number of Unicode characters in the Null-terminated\r
- Unicode string specified by String.\r
-\r
- If String is NULL, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and String contains more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
-\r
- @param String Pointer to a Null-terminated Unicode string.\r
-\r
- @return The length of String.\r
-\r
-**/\r
-UINTN\r
-EFIAPI\r
-StrLen (\r
- IN CONST CHAR16 *String\r
- )\r
-{\r
- UINTN Length;\r
-\r
- ASSERT (String != NULL);\r
-\r
- for (Length = 0; *String != L'\0'; String++, Length++) {\r
- //\r
- // If PcdMaximumUnicodeStringLength is not zero,\r
- // length should not more than PcdMaximumUnicodeStringLength\r
- //\r
- if (FixedPcdGet32 (PcdMaximumUnicodeStringLength) != 0) {\r
- ASSERT (Length < FixedPcdGet32 (PcdMaximumUnicodeStringLength));\r
- }\r
- }\r
- return Length;\r
-}\r
-\r
/**\r
Returns the size of a Null-terminated Unicode string in bytes, including the\r
Null terminator.\r
string specified by String.\r
\r
If String is NULL, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and String contains more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
\r
@param String Pointer to a Null-terminated Unicode string.\r
\r
\r
If FirstString is NULL, then ASSERT().\r
If SecondString is NULL, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and FirstString contains more\r
- than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and SecondString contains more\r
- than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
\r
@param FirstString Pointer to a Null-terminated Unicode string.\r
@param SecondString Pointer to a Null-terminated Unicode string.\r
)\r
{\r
//\r
- // ASSERT both strings are less long than PcdMaximumUnicodeStringLength\r
+ // ASSERT both strings should never be zero\r
//\r
ASSERT (StrSize (FirstString) != 0);\r
ASSERT (StrSize (SecondString) != 0);\r
\r
If FirstString is NULL, then ASSERT().\r
If SecondString is NULL, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and FirstString contains more\r
- than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and SecondString contains more\r
- than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
\r
@param FirstString Pointer to a Null-terminated Unicode string.\r
@param SecondString Pointer to a Null-terminated Unicode string.\r
}\r
\r
//\r
- // ASSERT both strings are less long than PcdMaximumUnicodeStringLength.\r
- // Length tests are performed inside StrLen().\r
+ // ASSERT both strings should never be zero\r
//\r
ASSERT (StrSize (FirstString) != 0);\r
ASSERT (StrSize (SecondString) != 0);\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
If Source and Destination overlap, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and Destination contains more\r
- than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and Source contains more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and concatenating Destination\r
- and Source results in a Unicode string with more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated Unicode string.\r
@param Source Pointer to a Null-terminated Unicode string.\r
\r
//\r
// Size of the resulting string should never be zero.\r
- // PcdMaximumUnicodeStringLength is tested inside StrLen().\r
//\r
ASSERT (StrSize (Destination) != 0);\r
return Destination;\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
If Source and Destination overlap, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and Destination contains more\r
- than PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and Source contains more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
- If PcdMaximumUnicodeStringLength is not zero, and concatenating Destination\r
- and Source results in a Unicode string with more than\r
- PcdMaximumUnicodeStringLength Unicode characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated Unicode string.\r
@param Source Pointer to a Null-terminated Unicode string.\r
\r
//\r
// Size of the resulting string should never be zero.\r
- // PcdMaximumUnicodeStringLength is tested inside StrLen().\r
//\r
ASSERT (StrSize (Destination) != 0);\r
return Destination;\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
If Source and Destination overlap, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and Source contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated ASCII string.\r
@param Source Pointer to a Null-terminated ASCII string.\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
If Source and Destination overlap, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero, and Source contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated ASCII string.\r
@param Source Pointer to a Null-terminated ASCII string.\r
return ReturnValue;\r
}\r
\r
-/**\r
- Returns the length of a Null-terminated ASCII string.\r
-\r
- This function returns the number of ASCII characters in the Null-terminated\r
- ASCII string specified by String.\r
-\r
- If String is NULL, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and String contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
-\r
- @param String Pointer to a Null-terminated ASCII string.\r
-\r
- @return The length of String.\r
-\r
-**/\r
-UINTN\r
-EFIAPI\r
-AsciiStrLen (\r
- IN CONST CHAR8 *String\r
- )\r
-{\r
- UINTN Length;\r
-\r
- ASSERT (String != NULL);\r
-\r
- for (Length = 0; *String != '\0'; String++, Length++) {\r
- //\r
- // If PcdMaximumUnicodeStringLength is not zero,\r
- // length should not more than PcdMaximumUnicodeStringLength\r
- //\r
- if (FixedPcdGet32 (PcdMaximumAsciiStringLength) != 0) {\r
- ASSERT (Length < FixedPcdGet32 (PcdMaximumAsciiStringLength));\r
- }\r
- }\r
- return Length;\r
-}\r
-\r
/**\r
Returns the size of a Null-terminated ASCII string in bytes, including the\r
Null terminator.\r
specified by String.\r
\r
If String is NULL, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and String contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
\r
@param String Pointer to a Null-terminated ASCII string.\r
\r
\r
If FirstString is NULL, then ASSERT().\r
If SecondString is NULL, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and FirstString contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and SecondString contains more\r
- than PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
\r
@param FirstString Pointer to a Null-terminated ASCII string.\r
@param SecondString Pointer to a Null-terminated ASCII string.\r
)\r
{\r
//\r
- // ASSERT both strings are less long than PcdMaximumAsciiStringLength\r
+ // ASSERT both strings should never be zero\r
//\r
ASSERT (AsciiStrSize (FirstString));\r
ASSERT (AsciiStrSize (SecondString));\r
\r
If FirstString is NULL, then ASSERT().\r
If SecondString is NULL, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and FirstString contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and SecondString contains more\r
- than PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
\r
@param FirstString Pointer to a Null-terminated ASCII string.\r
@param SecondString Pointer to a Null-terminated ASCII string.\r
)\r
{\r
//\r
- // ASSERT both strings are less long than PcdMaximumAsciiStringLength\r
+ // ASSERT both strings should never be zero\r
//\r
ASSERT (AsciiStrSize (FirstString));\r
ASSERT (AsciiStrSize (SecondString));\r
\r
If FirstString is NULL, then ASSERT().\r
If SecondString is NULL, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and FirstString contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and SecondString contains more\r
- than PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
\r
@param FirstString Pointer to a Null-terminated ASCII string.\r
@param SecondString Pointer to a Null-terminated ASCII string.\r
)\r
{\r
//\r
- // ASSERT both strings are less long than PcdMaximumAsciiStringLength\r
+ // ASSERT both strings should never be zero\r
//\r
ASSERT (AsciiStrSize (FirstString));\r
ASSERT (AsciiStrSize (SecondString));\r
\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and Destination contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and Source contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero and concatenating Destination and\r
- Source results in a ASCII string with more than PcdMaximumAsciiStringLength\r
- ASCII characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated ASCII string.\r
@param Source Pointer to a Null-terminated ASCII string.\r
\r
//\r
// Size of the resulting string should never be zero.\r
- // PcdMaximumUnicodeStringLength is tested inside StrLen().\r
//\r
ASSERT (AsciiStrSize (Destination) != 0);\r
return Destination;\r
If Destination is NULL, then ASSERT().\r
If Source is NULL, then ASSERT().\r
If Source and Destination overlap, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero, and Destination contains more\r
- than PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero, and Source contains more than\r
- PcdMaximumAsciiStringLength ASCII characters, then ASSERT().\r
- If PcdMaximumAsciiStringLength is not zero, and concatenating Destination and\r
- Source results in a ASCII string with more than PcdMaximumAsciiStringLength\r
- ASCII characters, then ASSERT().\r
\r
@param Destination Pointer to a Null-terminated ASCII string.\r
@param Source Pointer to a Null-terminated ASCII string.\r
\r
//\r
// Size of the resulting string should never be zero.\r
- // PcdMaximumUnicodeStringLength is tested inside StrLen().\r
//\r
ASSERT (AsciiStrSize (Destination) != 0);\r
return Destination;\r