git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2482
6f19259b-4bc3-4df7-8a09-
765794883524
-\r
-STATIC\r
-UINT32\r
-EFIAPI\r
-ArrayLength (\r
- IN CHAR16 *String\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Determine the length of null terminated char16 array.\r
-\r
-Arguments:\r
-\r
- String Null-terminated CHAR16 array pointer.\r
-\r
-Returns:\r
-\r
- UINT32 Number of bytes in the string, including the double NULL at the end;\r
-\r
---*/\r
-{\r
- UINT32 Count;\r
-\r
- if (NULL == String) {\r
- return 0;\r
- }\r
-\r
- Count = 0;\r
-\r
- while (0 != String[Count]) {\r
- Count++;\r
- }\r
-\r
- return (Count * 2) + 2;\r
-}\r
-\r
STATIC\r
UINT8 *\r
EFIAPI\r
STATIC\r
UINT8 *\r
EFIAPI\r
return EFI_SUCCESS;\r
} else {\r
if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {\r
return EFI_SUCCESS;\r
} else {\r
if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {\r
- if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), ArrayLength (VariableName))) {\r
+ if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), Variable[Index]->NameSize)) {\r
PtrTrack->CurrPtr = Variable[Index];\r
PtrTrack->Volatile = (BOOLEAN) Index;\r
return EFI_SUCCESS;\r
PtrTrack->CurrPtr = Variable[Index];\r
PtrTrack->Volatile = (BOOLEAN) Index;\r
return EFI_SUCCESS;\r
//\r
Status = EFI_WRITE_PROTECTED;\r
goto Done;\r
//\r
Status = EFI_WRITE_PROTECTED;\r
goto Done;\r
- } else if (sizeof (VARIABLE_HEADER) + (ArrayLength (VariableName) + DataSize) > MAX_VARIABLE_SIZE) {\r
+ } else if (sizeof (VARIABLE_HEADER) + (StrSize (VariableName) + DataSize) > MAX_VARIABLE_SIZE) {\r
//\r
// The size of the VariableName, including the Unicode Null in bytes plus\r
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.\r
//\r
// The size of the VariableName, including the Unicode Null in bytes plus\r
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.\r
// Create a new variable and copy the data.\r
//\r
VarNameOffset = sizeof (VARIABLE_HEADER);\r
// Create a new variable and copy the data.\r
//\r
VarNameOffset = sizeof (VARIABLE_HEADER);\r
- VarNameSize = ArrayLength (VariableName);\r
+ VarNameSize = StrSize (VariableName);\r
VarDataOffset = VarNameOffset + VarNameSize + GET_PAD_SIZE (VarNameSize);\r
VarSize = VarDataOffset + DataSize + GET_PAD_SIZE (DataSize);\r
\r
VarDataOffset = VarNameOffset + VarNameSize + GET_PAD_SIZE (VarNameSize);\r
VarSize = VarDataOffset + DataSize + GET_PAD_SIZE (DataSize);\r
\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>BaseLib</Keyword>\r
+ </LibraryClass>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>BaseLib</Keyword>\r
+ </LibraryClass>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
-Copyright (c) 2006, Intel Corporation \r
+Copyright (c) 2006 - 2007 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
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
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&\r
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])\r
) {\r
(((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&\r
(((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])\r
) {\r
- if (!StrCmp (VariableName, GET_VARIABLE_NAME_PTR (Variable))) {\r
+ if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), Variable->NameSize)) {\r
PtrTrack->CurrPtr = Variable;\r
return EFI_SUCCESS;\r
}\r
PtrTrack->CurrPtr = Variable;\r
return EFI_SUCCESS;\r
}\r
-<?xml version="1.0" encoding="UTF-8"?>\r
+<?xml version="1.0" encoding="UTF-8"?>\r
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
<MsaHeader>\r
<ModuleName>PeiVariable</ModuleName>\r
<ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\r
<MsaHeader>\r
<ModuleName>PeiVariable</ModuleName>\r
<Abstract>Component description file for PeiVariable module.</Abstract>\r
<Description>Framework PEIM to provide the Variable functionality.</Description>\r
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation</Copyright>\r
<Abstract>Component description file for PeiVariable module.</Abstract>\r
<Description>Framework PEIM to provide the Variable functionality.</Description>\r
<Copyright>Copyright (c) 2006 - 2007, Intel Corporation</Copyright>\r
- <License>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
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+ <License>All rights reserved. This program and the accompanying materials
+ are licensed and made available under the terms and conditions of the BSD License
+ which accompanies this distribution. The full text of the license may be found at
+ http://opensource.org/licenses/bsd-license.php
+ THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>\r
</MsaHeader>\r
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.</License>\r
<Specification>FRAMEWORK_BUILD_PACKAGING_SPECIFICATION 0x00000052</Specification>\r
</MsaHeader>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>PcdLib</Keyword>\r
</LibraryClass>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>PcdLib</Keyword>\r
</LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>BaseMemoryLib</Keyword>\r
+ </LibraryClass>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
<PcdEntry PcdItemType="DYNAMIC">\r
<C_Name>PcdFlashNvStorageVariableBase</C_Name>\r
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
<PcdEntry PcdItemType="DYNAMIC">\r
<C_Name>PcdFlashNvStorageVariableBase</C_Name>\r
<TokenSpaceGuidCName>gEfiGenericPlatformTokenSpaceGuid</TokenSpaceGuidCName>\r
- <HelpText>The driver gets the Variable store base address from this PCD. This base address point to\r
+ <HelpText>The driver gets the Variable store base address from this PCD. This base address point to
an EFI_FIRMWARE_VOLUMN_HEADER struct.</HelpText>\r
</PcdEntry>\r
</PcdCoded>\r
an EFI_FIRMWARE_VOLUMN_HEADER struct.</HelpText>\r
</PcdEntry>\r
</PcdCoded>\r
-STATIC\r
-UINT32\r
-EFIAPI\r
-ArrayLength (\r
- IN CHAR16 *String\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Determine the length of null terminated char16 array.\r
-\r
-Arguments:\r
-\r
- String Null-terminated CHAR16 array pointer.\r
-\r
-Returns:\r
-\r
- UINT32 Number of bytes in the string, including the double NULL at the end;\r
-\r
---*/\r
-{\r
- UINT32 Count;\r
-\r
- if (NULL == String) {\r
- return 0;\r
- }\r
-\r
- Count = 0;\r
-\r
- while (0 != String[Count]) {\r
- Count++;\r
- }\r
-\r
- return (Count * 2) + 2;\r
-}\r
-\r
STATIC\r
BOOLEAN\r
EFIAPI\r
STATIC\r
BOOLEAN\r
EFIAPI\r
return EFI_SUCCESS;\r
} else {\r
if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {\r
return EFI_SUCCESS;\r
} else {\r
if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {\r
- if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), ArrayLength (VariableName))) {\r
+ if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), Variable[Index]->NameSize)) {\r
PtrTrack->CurrPtr = Variable[Index];\r
PtrTrack->Volatile = (BOOLEAN) Index;\r
return EFI_SUCCESS;\r
PtrTrack->CurrPtr = Variable[Index];\r
PtrTrack->Volatile = (BOOLEAN) Index;\r
return EFI_SUCCESS;\r
//\r
Status = EFI_WRITE_PROTECTED;\r
goto Done;\r
//\r
Status = EFI_WRITE_PROTECTED;\r
goto Done;\r
- } else if (sizeof (VARIABLE_HEADER) + ArrayLength (VariableName) + DataSize > MAX_VARIABLE_SIZE) {\r
+ } else if (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_VARIABLE_SIZE) {\r
//\r
// The size of the VariableName, including the Unicode Null in bytes plus\r
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.\r
//\r
// The size of the VariableName, including the Unicode Null in bytes plus\r
// the DataSize is limited to maximum size of MAX_VARIABLE_SIZE (1024) bytes.\r
//\r
NextVariable->Reserved = 0;\r
VarNameOffset = sizeof (VARIABLE_HEADER);\r
//\r
NextVariable->Reserved = 0;\r
VarNameOffset = sizeof (VARIABLE_HEADER);\r
- VarNameSize = ArrayLength (VariableName);\r
+ VarNameSize = StrSize (VariableName);\r
CopyMem (\r
(UINT8 *) ((UINTN) NextVariable + VarNameOffset),\r
VariableName,\r
CopyMem (\r
(UINT8 *) ((UINTN) NextVariable + VarNameOffset),\r
VariableName,\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>BaseLib</Keyword>\r
+ </LibraryClass>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
<LibraryClass Usage="ALWAYS_CONSUMED">\r
<Keyword>UefiLib</Keyword>\r
</LibraryClass>\r
+ <LibraryClass Usage="ALWAYS_CONSUMED">\r
+ <Keyword>BaseLib</Keyword>\r
+ </LibraryClass>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r
</LibraryClassDefinitions>\r
<SourceFiles>\r
<Filename>Variable.h</Filename>\r