#include <Guid/Mps.h>\r
#include <Guid/FlashMapHob.h>\r
#include <Guid/SystemNvDataGuid.h>\r
+#include <Guid/VariableFormat.h>\r
\r
#include <Protocol/Decompress.h>\r
#include <Protocol/StatusCode.h>\r
#include <Library/PrintLib.h>\r
#include <Library/IoLib.h>\r
\r
-#include <VariableFormat.h>\r
#include <CpuIA32.h>\r
\r
#endif // _DUET_DXEIPL_H_\r
ReportStatusCodeLib\r
IoLib\r
\r
+[Guids]\r
+ gEfiVariableGuid\r
+\r
[Sources.common]\r
DxeIpl.h\r
DxeInit.c\r
*/\r
{\r
STATIC VARIABLE_STORE_HEADER VarStoreHeader = {\r
- VARIABLE_STORE_SIGNATURE,\r
+ gEfiVariableGuid,\r
0xffffffff, // will be fixed in Variable driver\r
VARIABLE_STORE_FORMATTED,\r
VARIABLE_STORE_HEALTHY,\r
#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
--*/\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
#include <Guid/HobList.h>\r
#include <Guid/FlashMapHob.h>\r
+#include <Guid/VariableFormat.h>\r
\r
#include <Protocol/Variable.h>\r
#include <Protocol/VariableWrite.h>\r
\r
\r
#include "EfiFlashMap.h"\r
-#include "VariableFormat.h"\r
#include "VariableStorage.h"\r
\r
#define VOLATILE_VARIABLE_STORE_SIZE (64 * 1024)\r
[Guids]\r
gEfiHobListGuid\r
gEfiFlashMapHobGuid\r
+ gEfiVariableGuid\r
\r
[Protocols]\r
gEfiVariableArchProtocolGuid\r
ASSERT_EFI_ERROR (Status);\r
ZeroMem (Dev, sizeof(VS_DEV));\r
\r
- Dev->Signature = VARIABLE_STORE_SIGNATURE;\r
+ CopyGuid (&Dev->Signature, &gEfiVariableGuid);\r
Dev->Size = Size;\r
VAR_DATA_PTR (Dev) = (UINT8 *) (UINTN) NvStorageBase;\r
VAR_FILE_VOLUMEID (Dev) = VolumeId;\r
\r
ZeroMem (Dev, sizeof(VS_DEV));\r
\r
- Dev->Signature = VARIABLE_STORE_SIGNATURE;\r
+ CopyGuid (&Dev->Signature, &gEfiVariableGuid);\r
Dev->Size = Size;\r
\r
Dev->VarStore.Erase = MemEraseStore;\r
\r
} VS_DEV;\r
\r
-#define DEV_FROM_THIS(a) CR (a, VS_DEV, VarStore, VARIABLE_STORE_SIGNATURE)\r
+#define VS_DEV_SIGNATURE SIGNATURE_32 ('$', 'V', 'S', 'D')\r
+#define DEV_FROM_THIS(a) CR (a, VS_DEV, VarStore, VS_DEV_SIGNATURE)\r
\r
#define VAR_DATA_PTR(a) ((a)->Info.Data)\r
#define VAR_FILE_DEVICEPATH(a) ((a)->Info.FileInfo.DevicePath)\r
)\r
\r
{\r
- if (VarStoreHeader->Signature == VARIABLE_STORE_SIGNATURE &&\r
+ \r
+ if (CompareGuid (&VarStoreHeader->Signature, &gEfiVariableGuid) &&\r
VarStoreHeader->Format == VARIABLE_STORE_FORMATTED &&\r
VarStoreHeader->State == VARIABLE_STORE_HEALTHY\r
) {\r
return EfiValid;\r
}\r
\r
- if (VarStoreHeader->Signature == 0xffffffff &&\r
+ if (((UINT32 *)(&VarStoreHeader->Signature))[0] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[1] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[2] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[3] == 0xffffffff &&\r
VarStoreHeader->Size == 0xffffffff &&\r
VarStoreHeader->Format == 0xff &&\r
VarStoreHeader->State == 0xff\r
#include <Library/PcdLib.h>\r
#include <Library/BaseMemoryLib.h>\r
#include <Library/PeiServicesTablePointerLib.h>\r
-#include <VariableFormat.h>\r
+#include <Guid/VariableFormat.h>\r
\r
typedef struct {\r
VARIABLE_HEADER *CurrPtr;\r
gEfiPeiReadOnlyVariablePpiGuid # PPI ALWAYS_PRODUCED\r
gEfiPeiReadOnlyVariable2PpiGuid # PPI ALWAYS_PRODUCED\r
\r
+[Guids]\r
+ gEfiVariableGuid\r
+\r
################################################################################\r
#\r
# Pcd DYNAMIC - list of PCDs that this module is coded for.\r
#include <Uefi.h>\r
#include <Library/UefiLib.h>\r
#include <Library/UefiApplicationEntryPoint.h>\r
-#include <Guid/VariableInfo.h>\r
+#include <Guid/VariableFormat.h>\r
\r
\r
/**\r
VARIABLE_INFO_ENTRY *VariableInfo;\r
VARIABLE_INFO_ENTRY *Entry;\r
\r
- Status = EfiGetSystemConfigurationTable (&gEfiVariableInfoGuid, (VOID **)&Entry);\r
+ Status = EfiGetSystemConfigurationTable (&gEfiVariableGuid, (VOID **)&Entry);\r
if (!EFI_ERROR (Status) && (Entry != NULL)) {\r
Print (L"Non-Volatile EFI Variables:\n");\r
VariableInfo = Entry;\r
UefiLib\r
\r
[Guids]\r
- gEfiVariableInfoGuid ## CONSUMES ## Configuration Table Guid\r
+ gEfiVariableGuid ## CONSUMES ## Configuration Table Guid\r
--- /dev/null
+/** @file\r
+ The variable data structures are related to EDK II specific UEFI variable implementation.\r
+ Variable data header and Variable storage region header are defined here.\r
+\r
+ Copyright (c) 2006 - 2008 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
+\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
+\r
+#ifndef __VARIABLE_FORMAT_H__\r
+#define __VARIABLE_FORMAT_H__\r
+\r
+#define EFI_VARIABLE_GUID \\r
+ { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d } }\r
+\r
+extern EFI_GUID gEfiVariableGuid;\r
+\r
+///\r
+/// Alignment of variable name and data.\r
+/// For IA32/X64 architecture, the alignment is set to 1, and 8 is for IPF archtecture.\r
+///\r
+#if defined (MDE_CPU_IPF)\r
+#define ALIGNMENT 8\r
+#else\r
+#define ALIGNMENT 1\r
+#endif\r
+\r
+//\r
+// GET_PAD_SIZE to calculate miminal pad bytes to make current size satisfy the alignment requirement\r
+//\r
+#if ((ALIGNMENT == 0) || (ALIGNMENT == 1))\r
+#define GET_PAD_SIZE(a) (0)\r
+#else\r
+#define GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1))\r
+#endif\r
+\r
+///\r
+/// Alignment of Variable Data Header in Variable Store region\r
+///\r
+#define HEADER_ALIGNMENT 4\r
+#define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
+\r
+///\r
+/// Status of Variable Store Region\r
+///\r
+typedef enum {\r
+ EfiRaw,\r
+ EfiValid,\r
+ EfiInvalid,\r
+ EfiUnknown\r
+} VARIABLE_STORE_STATUS;\r
+\r
+#pragma pack(1)\r
+\r
+#define VARIABLE_STORE_SIGNATURE EFI_VARIABLE_GUID\r
+\r
+///\r
+/// Variable Store Header Format and State\r
+///\r
+#define VARIABLE_STORE_FORMATTED 0x5a\r
+#define VARIABLE_STORE_HEALTHY 0xfe\r
+\r
+///\r
+/// Variable Store region header\r
+///\r
+typedef struct {\r
+ ///\r
+ /// Variable store region signature.\r
+ ///\r
+ EFI_GUID Signature;\r
+ ///\r
+ /// Size of entire variable store, \r
+ /// including size of variable store header but not including the size of FvHeader.\r
+ ///\r
+ UINT32 Size;\r
+ ///\r
+ /// variable region format state\r
+ ///\r
+ UINT8 Format;\r
+ ///\r
+ /// variable region healthy state\r
+ ///\r
+ UINT8 State;\r
+ UINT16 Reserved;\r
+ UINT32 Reserved1;\r
+} VARIABLE_STORE_HEADER;\r
+\r
+///\r
+/// Variable data start flag\r
+///\r
+#define VARIABLE_DATA 0x55AA\r
+\r
+///\r
+/// Variable State flags\r
+///\r
+#define VAR_IN_DELETED_TRANSITION 0xfe ///< Variable is in obsolete transistion\r
+#define VAR_DELETED 0xfd ///< Variable is obsolete\r
+#define VAR_HEADER_VALID_ONLY 0x7f ///< Variable header has been valid\r
+#define VAR_ADDED 0x3f ///< Variable has been completely added\r
+\r
+///\r
+/// Single Variable Data Header Structure\r
+///\r
+typedef struct {\r
+ ///\r
+ /// Variable Data Start Flag\r
+ ///\r
+ UINT16 StartId;\r
+ ///\r
+ /// Variable State defined above\r
+ ///\r
+ UINT8 State;\r
+ UINT8 Reserved;\r
+ ///\r
+ /// Attributes of variable defined in UEFI spec\r
+ ///\r
+ UINT32 Attributes;\r
+ ///\r
+ /// Size of variable Null-terminated Unicode string name\r
+ ///\r
+ UINT32 NameSize;\r
+ ///\r
+ /// Size of the variable data without this header\r
+ ///\r
+ UINT32 DataSize;\r
+ ///\r
+ /// A unique identifier for the vendor that produce and consume this varaible.\r
+ ///\r
+ EFI_GUID VendorGuid;\r
+} VARIABLE_HEADER;\r
+\r
+#pragma pack()\r
+\r
+typedef struct _VARIABLE_INFO_ENTRY VARIABLE_INFO_ENTRY;\r
+\r
+///\r
+/// This structure contains the variable list that is put in EFI system table.\r
+/// The variable driver collects all used variables at boot service time and produce this list.\r
+/// This is an optional feature to dump all used variables in shell environment. \r
+///\r
+struct _VARIABLE_INFO_ENTRY {\r
+ VARIABLE_INFO_ENTRY *Next; ///> Pointer to next entry\r
+ EFI_GUID VendorGuid; ///> Guid of Variable \r
+ CHAR16 *Name; ///> Name of Variable \r
+ UINT32 Attributes; ///> Attributes of variable defined in UEFI spec\r
+ UINT32 ReadCount; ///> Times to read this variable\r
+ UINT32 WriteCount; ///> Times to write this variable\r
+ UINT32 DeleteCount; ///> Times to delete this variable\r
+ UINT32 CacheCount; ///> Times that cache hits this variable\r
+ BOOLEAN Volatile; ///> TRUE if volatile FALSE if non-volatile\r
+};\r
+\r
+#endif // _EFI_VARIABLE_H_\r
+++ /dev/null
-/** @file\r
- This file defines variable info guid and variable info entry.\r
- This guid is used to specify the variable list put in the EFI system table.\r
-\r
-Copyright (c) 2006 - 2009, Intel Corporation\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
-\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
-\r
-#ifndef __VARIABLE_INFO_GUID_H__\r
-#define __VARIABLE_INFO_GUID_H__\r
-\r
-#define EFI_VARIABLE_INFO_GUID \\r
- { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d } }\r
-\r
-extern EFI_GUID gEfiVariableInfoGuid;\r
-\r
-\r
-typedef struct _VARIABLE_INFO_ENTRY VARIABLE_INFO_ENTRY;\r
-\r
-///\r
-/// This structure contains the variable list that is put in EFI system table.\r
-/// The variable driver collects all used variables at boot service time and produce this list.\r
-/// This is an optional feature to dump all used variables in shell environment. \r
-///\r
-struct _VARIABLE_INFO_ENTRY {\r
- VARIABLE_INFO_ENTRY *Next; ///> Pointer to next entry\r
- EFI_GUID VendorGuid; ///> Guid of Variable \r
- CHAR16 *Name; ///> Name of Variable \r
- UINT32 Attributes; ///> Attributes of variable defined in UEFI spec\r
- UINT32 ReadCount; ///> Times to read this variable\r
- UINT32 WriteCount; ///> Times to write this variable\r
- UINT32 DeleteCount; ///> Times to delete this variable\r
- UINT32 CacheCount; ///> Times that cache hits this variable\r
- BOOLEAN Volatile; ///> TRUE if volatile FALSE if non-volatile\r
-};\r
-\r
-#endif\r
+++ /dev/null
-/** @file\r
- The variable data structures are related to EDK II specific UEFI variable implementation.\r
- Variable data header and Variable storage region header are defined here.\r
-\r
- Copyright (c) 2006 - 2008 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
-\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
-\r
-#ifndef __VARIABLE_FORMAT_H__\r
-#define __VARIABLE_FORMAT_H__\r
-\r
-///\r
-/// Alignment of variable name and data.\r
-/// For IA32/X64 architecture, the alignment is set to 1, and 8 is for IPF archtecture.\r
-///\r
-#if defined (MDE_CPU_IPF)\r
-#define ALIGNMENT 8\r
-#else\r
-#define ALIGNMENT 1\r
-#endif\r
-\r
-//\r
-// GET_PAD_SIZE to calculate miminal pad bytes to make current size satisfy the alignment requirement\r
-//\r
-#if ((ALIGNMENT == 0) || (ALIGNMENT == 1))\r
-#define GET_PAD_SIZE(a) (0)\r
-#else\r
-#define GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1))\r
-#endif\r
-\r
-///\r
-/// Alignment of Variable Data Header in Variable Store region\r
-///\r
-#define HEADER_ALIGNMENT 4\r
-#define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
-\r
-///\r
-/// Status of Variable Store Region\r
-///\r
-typedef enum {\r
- EfiRaw,\r
- EfiValid,\r
- EfiInvalid,\r
- EfiUnknown\r
-} VARIABLE_STORE_STATUS;\r
-\r
-#pragma pack(1)\r
-\r
-#define VARIABLE_STORE_SIGNATURE SIGNATURE_32 ('$', 'V', 'S', 'S')\r
-\r
-///\r
-/// Variable Store Header Format and State\r
-///\r
-#define VARIABLE_STORE_FORMATTED 0x5a\r
-#define VARIABLE_STORE_HEALTHY 0xfe\r
-\r
-///\r
-/// Variable Store region header\r
-///\r
-typedef struct {\r
- ///\r
- /// Variable store region signature.\r
- ///\r
- UINT32 Signature;\r
- ///\r
- /// Size of variable store region including this header\r
- ///\r
- UINT32 Size;\r
- ///\r
- /// variable region format state\r
- ///\r
- UINT8 Format;\r
- ///\r
- /// variable region healthy state\r
- ///\r
- UINT8 State;\r
- UINT16 Reserved;\r
- UINT32 Reserved1;\r
-} VARIABLE_STORE_HEADER;\r
-\r
-///\r
-/// Variable data start flag\r
-///\r
-#define VARIABLE_DATA 0x55AA\r
-\r
-///\r
-/// Variable State flags\r
-///\r
-#define VAR_IN_DELETED_TRANSITION 0xfe ///< Variable is in obsolete transistion\r
-#define VAR_DELETED 0xfd ///< Variable is obsolete\r
-#define VAR_HEADER_VALID_ONLY 0x7f ///< Variable header has been valid\r
-#define VAR_ADDED 0x3f ///< Variable has been completely added\r
-\r
-///\r
-/// Single Variable Data Header Structure\r
-///\r
-typedef struct {\r
- ///\r
- /// Variable Data Start Flag\r
- ///\r
- UINT16 StartId;\r
- ///\r
- /// Variable State defined above\r
- ///\r
- UINT8 State;\r
- UINT8 Reserved;\r
- ///\r
- /// Attributes of variable defined in UEFI spec\r
- ///\r
- UINT32 Attributes;\r
- ///\r
- /// Size of variable Null-terminated Unicode string name\r
- ///\r
- UINT32 NameSize;\r
- ///\r
- /// Size of the variable data without this header\r
- ///\r
- UINT32 DataSize;\r
- ///\r
- /// A unique identifier for the vendor that produce and consume this varaible.\r
- ///\r
- EFI_GUID VendorGuid;\r
-} VARIABLE_HEADER;\r
-\r
-#pragma pack()\r
-\r
-#endif // _EFI_VARIABLE_H_\r
#include <Library/PlatformDriverOverrideLib.h>\r
\r
#include <Guid/OverrideVariable.h>\r
-#include <VariableFormat.h>\r
+#include <Guid/VariableFormat.h>\r
\r
\r
#define PLATFORM_OVERRIDE_ITEM_SIGNATURE SIGNATURE_32('p','d','o','i')\r
## Include/Guid/PeiPeCoffLoader.h\r
gEfiPeiPeCoffLoaderGuid = { 0xD8117CFF, 0x94A6, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}\r
\r
- ## Guid specify the variable list entries put in the EFI system table.\r
- ## Include/Guid/VariableInfo.h\r
- gEfiVariableInfoGuid = { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}\r
+ ## Guid acted as variable store header's signature and to specify the variable list entries put in the EFI system table.\r
+ ## Include/Guid/VariableFormat.h\r
+ gEfiVariableGuid = { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}\r
\r
## Platform Override Variable guid\r
## Include/Guid/OverrideVariable.h\r
*VariableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) VariableStore;\r
*LastVariableOffset = sizeof (VARIABLE_STORE_HEADER);\r
\r
- VariableStore->Signature = VARIABLE_STORE_SIGNATURE;\r
+ CopyGuid (&VariableStore->Signature, &gEfiVariableGuid);\r
VariableStore->Size = FixedPcdGet32(PcdVariableStoreSize);\r
VariableStore->Format = VARIABLE_STORE_FORMATTED;\r
VariableStore->State = VARIABLE_STORE_HEALTHY;\r
\r
[Guids]\r
gEfiEventVirtualAddressChangeGuid ## PRODUCES ## Event\r
+ gEfiVariableGuid\r
\r
[Pcd.common]\r
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize\r
#include <Library/UefiLib.h>\r
#include <Library/BaseLib.h>\r
#include <Library/PcdLib.h>\r
-#include <VariableFormat.h>\r
+#include <Guid/VariableFormat.h>\r
\r
#include <Guid/EventGroup.h>\r
\r
IN VARIABLE_STORE_HEADER *VarStoreHeader\r
)\r
{\r
- if (VarStoreHeader->Signature == VARIABLE_STORE_SIGNATURE &&\r
+ \r
+ if (CompareGuid (&VarStoreHeader->Signature, &gEfiVariableGuid) &&\r
VarStoreHeader->Format == VARIABLE_STORE_FORMATTED &&\r
VarStoreHeader->State == VARIABLE_STORE_HEALTHY\r
) {\r
return EfiValid;\r
}\r
\r
- if (VarStoreHeader->Signature == 0xffffffff &&\r
+ if (((UINT32 *)(&VarStoreHeader->Signature))[0] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[1] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[2] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[3] == 0xffffffff &&\r
VarStoreHeader->Size == 0xffffffff &&\r
VarStoreHeader->Format == 0xff &&\r
VarStoreHeader->State == 0xff\r
#include <Library/PeiServicesTablePointerLib.h>\r
#include <Library/PeiServicesLib.h>\r
\r
-#include <VariableFormat.h>\r
+#include <Guid/VariableFormat.h>\r
\r
typedef struct {\r
VARIABLE_HEADER *CurrPtr;\r
PeiServicesTablePointerLib\r
PeiServicesLib\r
\r
+[Guids]\r
+ gEfiVariableGuid\r
+\r
[Ppis]\r
gEfiPeiReadOnlyVariable2PpiGuid ## SOMETIMES_PRODUCES (Not for boot mode RECOVERY)\r
\r
StrCpy (gVariableInfo->Name, VariableName);\r
gVariableInfo->Volatile = Volatile;\r
\r
- gBS->InstallConfigurationTable (&gEfiVariableInfoGuid, gVariableInfo);\r
+ gBS->InstallConfigurationTable (&gEfiVariableGuid, gVariableInfo);\r
}\r
\r
\r
IN VARIABLE_STORE_HEADER *VarStoreHeader\r
)\r
{\r
- if (VarStoreHeader->Signature == VARIABLE_STORE_SIGNATURE &&\r
+ if (CompareGuid (&VarStoreHeader->Signature, &gEfiVariableGuid) &&\r
VarStoreHeader->Format == VARIABLE_STORE_FORMATTED &&\r
VarStoreHeader->State == VARIABLE_STORE_HEALTHY\r
) {\r
\r
return EfiValid;\r
- } else if (VarStoreHeader->Signature == 0xffffffff &&\r
- VarStoreHeader->Size == 0xffffffff &&\r
- VarStoreHeader->Format == 0xff &&\r
- VarStoreHeader->State == 0xff\r
+ } else if (((UINT32 *)(&VarStoreHeader->Signature))[0] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[1] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[2] == 0xffffffff &&\r
+ ((UINT32 *)(&VarStoreHeader->Signature))[3] == 0xffffffff &&\r
+ VarStoreHeader->Size == 0xffffffff &&\r
+ VarStoreHeader->Format == 0xff &&\r
+ VarStoreHeader->State == 0xff\r
) {\r
\r
return EfiRaw;\r
mVariableModuleGlobal->VariableGlobal.VolatileVariableBase = (EFI_PHYSICAL_ADDRESS) (UINTN) VolatileVariableStore;\r
mVariableModuleGlobal->VolatileLastVariableOffset = (UINTN) GetStartPointer (VolatileVariableStore) - (UINTN) VolatileVariableStore;\r
\r
- VolatileVariableStore->Signature = VARIABLE_STORE_SIGNATURE;\r
+ CopyGuid (&VolatileVariableStore->Signature, &gEfiVariableGuid);\r
VolatileVariableStore->Size = FixedPcdGet32(PcdVariableStoreSize);\r
VolatileVariableStore->Format = VARIABLE_STORE_FORMATTED;\r
VolatileVariableStore->State = VARIABLE_STORE_HEALTHY;\r
#include <Library/BaseLib.h>\r
#include <Library/SynchronizationLib.h>\r
#include <Library/MemoryAllocationLib.h>\r
-#include <Guid/VariableInfo.h>\r
#include <Guid/GlobalVariable.h>\r
#include <Guid/EventGroup.h>\r
-#include <VariableFormat.h>\r
+#include <Guid/VariableFormat.h>\r
\r
#define VARIABLE_RECLAIM_THRESHOLD (1024)\r
\r
gEfiVariableArchProtocolGuid ## ALWAYS_PRODUCES\r
\r
[Guids]\r
- gEfiVariableInfoGuid ## PRODUCES ## Configuration Table Guid \r
+ gEfiVariableGuid ## PRODUCES ## Configuration Table Guid \r
gEfiGlobalVariableGuid ## PRODUCES ## Variable Guid\r
gEfiEventVirtualAddressChangeGuid ## PRODUCES ## Event\r
\r
#Blockmap[1]: End\r
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
## This is the VARIABLE_STORE_HEADER\r
- #Signature: "$VSS" #Size: 0xc000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (HeaderLength) = 0xBFB8\r
- # This can speed up the Variable Dispatch a bit.\r
- 0x24, 0x56, 0x53, 0x53, 0xB8, 0xBF, 0x00, 0x00,\r
+ #Signature: gEfiVariableGuid =\r
+ # { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}\r
+ 0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41,\r
+ 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d,\r
+ #Size: 0xc000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xBFB8\r
+ # This can speed up the Variable Dispatch a bit.\r
+ 0xB8, 0xBF, 0x00, 0x00,\r
#FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32\r
0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\r
}\r
INF MdeModulePkg/Universal/DriverSampleDxe/DriverSampleDxe.inf\r
INF MdeModulePkg/Universal/PlatformDriOverrideDxe/PlatformDriOverrideDxe.inf\r
\r
+INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf\r
+INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf\r
+INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf\r
+INF MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf\r
+INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf\r
+INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf\r
+INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf\r
+INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf\r
+INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf\r
+INF Nt32Pkg/SnpNt32Dxe/SnpNt32Dxe.inf\r
+INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf\r
################################################################################\r
#\r
# FILE statements are provided so that a platform integrator can include\r
# Blockmap[1]: End\r
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\r
## This is the VARIABLE_STORE_HEADER\r
- #Signature: "$VSS" #Size: 0xc000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (HeaderLength) = 0xBFB8\r
- # This can speed up the Variable Dispatch a bit.\r
- 0x24, 0x56, 0x53, 0x53, 0xB8, 0xBF, 0x00, 0x00,\r
+ #Signature: gEfiVariableGuid =\r
+ # { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d }}\r
+ 0x16, 0x36, 0xcf, 0xdd, 0x75, 0x32, 0x64, 0x41,\r
+ 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d,\r
+ #Size: 0xc000 (gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize) - 0x48 (size of EFI_FIRMWARE_VOLUME_HEADER) = 0xBFB8\r
+ # This can speed up the Variable Dispatch a bit.\r
+ 0xB8, 0xBF, 0x00, 0x00,\r
#FORMATTED: 0x5A #HEALTHY: 0xFE #Reserved: UINT16 #Reserved1: UINT32\r
0x5A, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00\r
}\r