#include "FSVariable.h"\r
\r
VARIABLE_STORE_HEADER mStoreHeaderTemplate = {\r
- VARIABLE_STORE_SIGNATURE,\r
+ gEfiVariableGuid,\r
VOLATILE_VARIABLE_STORE_SIZE,\r
VARIABLE_STORE_FORMATTED,\r
VARIABLE_STORE_HEALTHY,\r
//\r
VARIABLE_GLOBAL *mGlobal;\r
\r
-STATIC\r
VOID\r
EFIAPI\r
-OnVirtualAddressChange (\r
+OnVirtualAddressChangeFsv (\r
IN EFI_EVENT Event,\r
IN VOID *Context\r
);\r
\r
-STATIC\r
VOID\r
EFIAPI\r
OnSimpleFileSystemInstall (\r
IN VOID *Context\r
);\r
\r
-STATIC\r
BOOLEAN\r
IsValidVariableHeader (\r
IN VARIABLE_HEADER *Variable\r
{\r
if (Variable == NULL ||\r
Variable->StartId != VARIABLE_DATA ||\r
- (sizeof (VARIABLE_HEADER) + Variable->NameSize + Variable->DataSize) > MAX_VARIABLE_SIZE\r
+ (sizeof (VARIABLE_HEADER) + Variable->NameSize + Variable->DataSize) > FixedPcdGet32(PcdMaxVariableSize)\r
) {\r
return FALSE;\r
}\r
return TRUE;\r
}\r
\r
-STATIC\r
VARIABLE_STORE_STATUS\r
GetVariableStoreStatus (\r
IN VARIABLE_STORE_HEADER *VarStoreHeader\r
\r
--*/\r
{\r
- if ((VarStoreHeader->Signature == mStoreHeaderTemplate.Signature) &&\r
+ if (CompareGuid (&VarStoreHeader->Signature, &mStoreHeaderTemplate.Signature) &&\r
(VarStoreHeader->Format == mStoreHeaderTemplate.Format) &&\r
(VarStoreHeader->State == mStoreHeaderTemplate.State)\r
) {\r
return EfiValid;\r
- } else if (VarStoreHeader->Signature == VAR_DEFAULT_VALUE_32 &&\r
- VarStoreHeader->Size == VAR_DEFAULT_VALUE_32 &&\r
- VarStoreHeader->Format == VAR_DEFAULT_VALUE &&\r
- VarStoreHeader->State == VAR_DEFAULT_VALUE\r
+ } else if (((UINT32 *)(&VarStoreHeader->Signature))[0] == VAR_DEFAULT_VALUE_32 &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[1] == VAR_DEFAULT_VALUE_32 &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[2] == VAR_DEFAULT_VALUE_32 &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[3] == VAR_DEFAULT_VALUE_32 &&\r
+ VarStoreHeader->Size == VAR_DEFAULT_VALUE_32 &&\r
+ VarStoreHeader->Format == VAR_DEFAULT_VALUE &&\r
+ VarStoreHeader->State == VAR_DEFAULT_VALUE\r
) {\r
\r
return EfiRaw;\r
}\r
}\r
\r
-STATIC\r
UINT8 *\r
GetVariableDataPtr (\r
IN VARIABLE_HEADER *Variable\r
return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + Variable->NameSize + GET_PAD_SIZE (Variable->NameSize));\r
}\r
\r
-STATIC\r
VARIABLE_HEADER *\r
GetNextVariablePtr (\r
IN VARIABLE_HEADER *Variable\r
return (VARIABLE_HEADER *) ((UINTN) GetVariableDataPtr (Variable) + Variable->DataSize + GET_PAD_SIZE (Variable->DataSize));\r
}\r
\r
-STATIC\r
VARIABLE_HEADER *\r
GetEndPointer (\r
IN VARIABLE_STORE_HEADER *VarStoreHeader\r
return FALSE;\r
}\r
\r
-STATIC\r
EFI_STATUS\r
Reclaim (\r
IN VARIABLE_STORAGE_TYPE StorageType,\r
Status = gBS->AllocatePool (\r
EfiBootServicesData,\r
ValidBufferSize,\r
- &ValidBuffer\r
+ (VOID**) &ValidBuffer\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
return Status;\r
}\r
\r
-STATIC\r
EFI_STATUS\r
FindVariable (\r
IN CHAR16 *VariableName,\r
\r
Variable.CurrPtr = GetNextVariablePtr (Variable.CurrPtr);\r
}\r
-\r
- return EFI_NOT_FOUND;\r
}\r
\r
EFI_STATUS\r
\r
//\r
// The size of the VariableName, including the Unicode Null in bytes plus\r
- // the DataSize is limited to maximum size of MAX_HARDWARE_ERROR_VARIABLE_SIZE (32K)\r
- // bytes for HwErrRec, and MAX_VARIABLE_SIZE (1024) bytes for the others.\r
+ // the DataSize is limited to maximum size of FixedPcdGet32(PcdMaxHardwareErrorVariableSize)\r
+ // bytes for HwErrRec, and FixedPcdGet32(PcdMaxVariableSize) bytes for the others.\r
//\r
if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {\r
- if ((DataSize > MAX_HARDWARE_ERROR_VARIABLE_SIZE) || \r
- (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_HARDWARE_ERROR_VARIABLE_SIZE)) {\r
+ if ((DataSize > FixedPcdGet32(PcdMaxHardwareErrorVariableSize)) || \r
+ (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > FixedPcdGet32(PcdMaxHardwareErrorVariableSize))) {\r
return EFI_INVALID_PARAMETER;\r
} \r
} else {\r
- if ((DataSize > MAX_VARIABLE_SIZE) ||\r
- (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > MAX_VARIABLE_SIZE)) {\r
+ if ((DataSize > FixedPcdGet32(PcdMaxVariableSize)) ||\r
+ (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > FixedPcdGet32(PcdMaxVariableSize))) {\r
return EFI_INVALID_PARAMETER;\r
} \r
} \r
*RemainingVariableStorageSize = VariableStoreHeader->Size - sizeof (VARIABLE_STORE_HEADER);\r
\r
//\r
- // Let *MaximumVariableSize be MAX_VARIABLE_SIZE with the exception of the variable header size.\r
+ // Let *MaximumVariableSize be FixedPcdGet32(PcdMaxVariableSize) with the exception of the variable header size.\r
//\r
- *MaximumVariableSize = MAX_VARIABLE_SIZE - sizeof (VARIABLE_HEADER);\r
+ *MaximumVariableSize = FixedPcdGet32(PcdMaxVariableSize) - sizeof (VARIABLE_HEADER);\r
\r
//\r
// Harware error record variable needs larger size.\r
//\r
if ((Attributes & EFI_VARIABLE_HARDWARE_ERROR_RECORD) == EFI_VARIABLE_HARDWARE_ERROR_RECORD) {\r
- *MaximumVariableSize = MAX_HARDWARE_ERROR_VARIABLE_SIZE - sizeof (VARIABLE_HEADER);\r
+ *MaximumVariableSize = FixedPcdGet32(PcdMaxHardwareErrorVariableSize) - sizeof (VARIABLE_HEADER);\r
}\r
\r
//\r
Status = gBS->AllocatePool (\r
EfiRuntimeServicesData,\r
(UINTN) sizeof (VARIABLE_GLOBAL),\r
- &mGlobal\r
+ (VOID**) &mGlobal\r
);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
Status = EFI_UNSUPPORTED;\r
return Status;\r
}\r
- \r
+\r
Status = FileStorageConstructor (\r
&mGlobal->VariableStore[NonVolatile], \r
&mGlobal->GoVirtualChildEvent[NonVolatile],\r
\r
\r
\r
-STATIC\r
VOID\r
EFIAPI\r
-OnVirtualAddressChange (\r
+OnVirtualAddressChangeFsv (\r
IN EFI_EVENT Event,\r
IN VOID *Context\r
)\r
\r
for (Index = 0; Index < MaxType; Index++) {\r
mGlobal->GoVirtualChildEvent[Index] (Event, mGlobal->VariableStore[Index]);\r
- EfiConvertPointer (0, &mGlobal->VariableStore[Index]);\r
+ EfiConvertPointer (0, (VOID**) &mGlobal->VariableStore[Index]);\r
EfiConvertPointer (0, &mGlobal->VariableBase[Index]);\r
}\r
EfiConvertPointer (0, &mGlobal->Scratch);\r
- EfiConvertPointer (0, &mGlobal);\r
+ EfiConvertPointer (0, (VOID**) &mGlobal);\r
}\r