From 3709c4cd5bc3956fee59f31bdd1b7dc5b61a039a Mon Sep 17 00:00:00 2001 From: eric_tian Date: Fri, 27 Feb 2009 05:35:08 +0000 Subject: =?UTF-8?q?1.=20delete=20Include/Guid/VariableInfo.h=202.=20move?= =?UTF-8?q?=20VariableFormat.h=20into=20GUID=20directory=20and=20change=20?= =?UTF-8?q?the=20=E2=80=9CSignature=E2=80=9D=20field=20of=20the=20VARIABLE?= =?UTF-8?q?=5FSTORE=5FHEADER=20to=20gEfiVariableGuid=20value.=203.=20mergi?= =?UTF-8?q?ng=20VARIABLE=5FINFO=5FENTRY=20structure=20into=20the=20new=20I?= =?UTF-8?q?nclude/Guid/VariableFormat.h=204.=20change=20gEfiVariableInfoGu?= =?UTF-8?q?id=20into=20gEfiVariableGuid.=205.=20modify=20FDF=20files=20to?= =?UTF-8?q?=20use=20new=20guid=20value=20instead=20of=20the=20original=20s?= =?UTF-8?q?ignature.=206.=20all=20code=20related=20to=20signature=20is=20c?= =?UTF-8?q?hanged=20to=20use=20guid=20value.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7728 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Include/Guid/VariableFormat.h | 159 +++++++++++++++++++++++++++++ MdeModulePkg/Include/Guid/VariableInfo.h | 44 -------- 2 files changed, 159 insertions(+), 44 deletions(-) create mode 100644 MdeModulePkg/Include/Guid/VariableFormat.h delete mode 100644 MdeModulePkg/Include/Guid/VariableInfo.h (limited to 'MdeModulePkg/Include/Guid') diff --git a/MdeModulePkg/Include/Guid/VariableFormat.h b/MdeModulePkg/Include/Guid/VariableFormat.h new file mode 100644 index 0000000000..b5491e43dc --- /dev/null +++ b/MdeModulePkg/Include/Guid/VariableFormat.h @@ -0,0 +1,159 @@ +/** @file + The variable data structures are related to EDK II specific UEFI variable implementation. + Variable data header and Variable storage region header are defined here. + + Copyright (c) 2006 - 2008 Intel Corporation.
+ 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. + +**/ + +#ifndef __VARIABLE_FORMAT_H__ +#define __VARIABLE_FORMAT_H__ + +#define EFI_VARIABLE_GUID \ + { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d } } + +extern EFI_GUID gEfiVariableGuid; + +/// +/// Alignment of variable name and data. +/// For IA32/X64 architecture, the alignment is set to 1, and 8 is for IPF archtecture. +/// +#if defined (MDE_CPU_IPF) +#define ALIGNMENT 8 +#else +#define ALIGNMENT 1 +#endif + +// +// GET_PAD_SIZE to calculate miminal pad bytes to make current size satisfy the alignment requirement +// +#if ((ALIGNMENT == 0) || (ALIGNMENT == 1)) +#define GET_PAD_SIZE(a) (0) +#else +#define GET_PAD_SIZE(a) (((~a) + 1) & (ALIGNMENT - 1)) +#endif + +/// +/// Alignment of Variable Data Header in Variable Store region +/// +#define HEADER_ALIGNMENT 4 +#define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1))) + +/// +/// Status of Variable Store Region +/// +typedef enum { + EfiRaw, + EfiValid, + EfiInvalid, + EfiUnknown +} VARIABLE_STORE_STATUS; + +#pragma pack(1) + +#define VARIABLE_STORE_SIGNATURE EFI_VARIABLE_GUID + +/// +/// Variable Store Header Format and State +/// +#define VARIABLE_STORE_FORMATTED 0x5a +#define VARIABLE_STORE_HEALTHY 0xfe + +/// +/// Variable Store region header +/// +typedef struct { + /// + /// Variable store region signature. + /// + EFI_GUID Signature; + /// + /// Size of entire variable store, + /// including size of variable store header but not including the size of FvHeader. + /// + UINT32 Size; + /// + /// variable region format state + /// + UINT8 Format; + /// + /// variable region healthy state + /// + UINT8 State; + UINT16 Reserved; + UINT32 Reserved1; +} VARIABLE_STORE_HEADER; + +/// +/// Variable data start flag +/// +#define VARIABLE_DATA 0x55AA + +/// +/// Variable State flags +/// +#define VAR_IN_DELETED_TRANSITION 0xfe ///< Variable is in obsolete transistion +#define VAR_DELETED 0xfd ///< Variable is obsolete +#define VAR_HEADER_VALID_ONLY 0x7f ///< Variable header has been valid +#define VAR_ADDED 0x3f ///< Variable has been completely added + +/// +/// Single Variable Data Header Structure +/// +typedef struct { + /// + /// Variable Data Start Flag + /// + UINT16 StartId; + /// + /// Variable State defined above + /// + UINT8 State; + UINT8 Reserved; + /// + /// Attributes of variable defined in UEFI spec + /// + UINT32 Attributes; + /// + /// Size of variable Null-terminated Unicode string name + /// + UINT32 NameSize; + /// + /// Size of the variable data without this header + /// + UINT32 DataSize; + /// + /// A unique identifier for the vendor that produce and consume this varaible. + /// + EFI_GUID VendorGuid; +} VARIABLE_HEADER; + +#pragma pack() + +typedef struct _VARIABLE_INFO_ENTRY VARIABLE_INFO_ENTRY; + +/// +/// This structure contains the variable list that is put in EFI system table. +/// The variable driver collects all used variables at boot service time and produce this list. +/// This is an optional feature to dump all used variables in shell environment. +/// +struct _VARIABLE_INFO_ENTRY { + VARIABLE_INFO_ENTRY *Next; ///> Pointer to next entry + EFI_GUID VendorGuid; ///> Guid of Variable + CHAR16 *Name; ///> Name of Variable + UINT32 Attributes; ///> Attributes of variable defined in UEFI spec + UINT32 ReadCount; ///> Times to read this variable + UINT32 WriteCount; ///> Times to write this variable + UINT32 DeleteCount; ///> Times to delete this variable + UINT32 CacheCount; ///> Times that cache hits this variable + BOOLEAN Volatile; ///> TRUE if volatile FALSE if non-volatile +}; + +#endif // _EFI_VARIABLE_H_ diff --git a/MdeModulePkg/Include/Guid/VariableInfo.h b/MdeModulePkg/Include/Guid/VariableInfo.h deleted file mode 100644 index 27a4dafea0..0000000000 --- a/MdeModulePkg/Include/Guid/VariableInfo.h +++ /dev/null @@ -1,44 +0,0 @@ -/** @file - This file defines variable info guid and variable info entry. - This guid is used to specify the variable list put in the EFI system table. - -Copyright (c) 2006 - 2009, Intel Corporation -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. - -**/ - -#ifndef __VARIABLE_INFO_GUID_H__ -#define __VARIABLE_INFO_GUID_H__ - -#define EFI_VARIABLE_INFO_GUID \ - { 0xddcf3616, 0x3275, 0x4164, { 0x98, 0xb6, 0xfe, 0x85, 0x70, 0x7f, 0xfe, 0x7d } } - -extern EFI_GUID gEfiVariableInfoGuid; - - -typedef struct _VARIABLE_INFO_ENTRY VARIABLE_INFO_ENTRY; - -/// -/// This structure contains the variable list that is put in EFI system table. -/// The variable driver collects all used variables at boot service time and produce this list. -/// This is an optional feature to dump all used variables in shell environment. -/// -struct _VARIABLE_INFO_ENTRY { - VARIABLE_INFO_ENTRY *Next; ///> Pointer to next entry - EFI_GUID VendorGuid; ///> Guid of Variable - CHAR16 *Name; ///> Name of Variable - UINT32 Attributes; ///> Attributes of variable defined in UEFI spec - UINT32 ReadCount; ///> Times to read this variable - UINT32 WriteCount; ///> Times to write this variable - UINT32 DeleteCount; ///> Times to delete this variable - UINT32 CacheCount; ///> Times that cache hits this variable - BOOLEAN Volatile; ///> TRUE if volatile FALSE if non-volatile -}; - -#endif -- cgit v1.2.3