Add INF extension Information
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 9 Jan 2009 06:26:42 +0000 (06:26 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 9 Jan 2009 06:26:42 +0000 (06:26 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7228 6f19259b-4bc3-4df7-8a09-765794883524

22 files changed:
MdeModulePkg/Application/HelloWorld/HelloWorld.inf
MdeModulePkg/Include/Guid/Bmp.h
MdeModulePkg/Include/Guid/CapsuleVendor.h
MdeModulePkg/Include/Guid/GenericPlatformVariable.h
MdeModulePkg/Include/MdeModuleHii.h
MdeModulePkg/Include/VariableFormat.h
MdeModulePkg/Include/WorkingBlockHeader.h
MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwLite.inf
MdeModulePkg/Universal/PCD/Pei/Pcd.inf
MdeModulePkg/Universal/PCD/Pei/Service.c
MdeModulePkg/Universal/PcatSingleSegmentPciCfg2Pei/PcatSingleSegmentPciCfg2Pei.inf
MdeModulePkg/Universal/PlatformDriverOverride/PlatOverMngr/PlatOverMngr.c
MdeModulePkg/Universal/PlatformDriverOverride/PlatOverMngr/PlatOverMngr.inf
MdeModulePkg/Universal/PlatformDriverOverride/PlatformDriOverrideDxe/PlatformDriOverrideDxe.inf
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariable.c
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/Variable.h
MdeModulePkg/Universal/Variable/Pei/Variable.h
MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h

index 50fb686319afcd36925e9eae9b38725a82352c42..2ee77d91c4fab4b7e8ae09a27fd8bed4d88b8198 100644 (file)
@@ -52,5 +52,5 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintEnable\r
 \r
 [Pcd]\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintString\r
-  gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintString  ## Valid when gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintEnable\r
+  gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintTimes   ## Valid when gEfiMdeModulePkgTokenSpaceGuid.PcdHelloWorldPrintEnable\r
index 0ab73790fb5c22186206fb4a3a62f7e3ab4d19ff..093a9587c5ce46a4608dc1d42535a56cc81409d2 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
-  This file defines header data structures for BMP file and default\r
-  FFS GUID Filename for BMP logo file. \r
+  This file defines BMP file header data structures.\r
+  It also defines the File GUID for default BMP logo file.\r
 \r
 Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
 All rights reserved. This program and the accompanying materials\r
@@ -34,10 +34,10 @@ typedef struct {
   UINT32        HeaderSize;\r
   UINT32        PixelWidth;\r
   UINT32        PixelHeight;\r
-  UINT16        Planes;          /// Must be 1\r
-  UINT16        BitPerPixel;     /// 1, 4, 8, or 24\r
+  UINT16        Planes;          ///> Must be 1\r
+  UINT16        BitPerPixel;     ///> 1, 4, 8, or 24\r
   UINT32        CompressionType;\r
-  UINT32        ImageSize;       /// Compressed image size in bytes\r
+  UINT32        ImageSize;       ///> Compressed image size in bytes\r
   UINT32        XPixelsPerMeter;\r
   UINT32        YPixelsPerMeter;\r
   UINT32        NumberOfColors;\r
index b326018c49fae48acc233b810cd3fba4b81c3a12..58ac355bd4190ab161950b4f6d2a01bba127426f 100644 (file)
@@ -1,7 +1,6 @@
 /** @file\r
-\r
-  This file defines capsule vendor guid, capsule variable name \r
-  and capsule guid hob data structure. \r
+  This file defines capsule vendor guid for capsule variable and hob.\r
+  It also defines capsule varialbe name and capsule guid hob data structure. \r
   They are used by EDKII implementation of capsule update across a system reset.\r
 \r
 Copyright (c) 2006 - 2008, Intel Corporation\r
index 92c73234f0d6e8d0e79968417e0a72af5e9a558e..f63fe9588d8fc7996c8af1d2b5b5b0b952a7e843 100644 (file)
@@ -1,6 +1,6 @@
 /** @file\r
   This file defines the genenic platform guid for EFI variable.\r
-  Common drivers can use this generic guid with its variable name to specify \r
+  Generic drivers can use this guid with its variable name to specify \r
   its EFI variable without defining another new guid.\r
 \r
 Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
index 9f5c3e3e0e1e38ddba85d70457427359ea788e55..092cdaf3103ada86a3ecfccf6c4ef64eb3831128 100644 (file)
@@ -1,5 +1,5 @@
 /** @file\r
-  EDK II implementation specific HII relative definition.\r
+  EDKII extented HII IFR guid opcodes.\r
 \r
 Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
 All rights reserved. This program and the accompanying materials\r
@@ -98,9 +98,9 @@ typedef struct _EFI_IFR_GUID_BANNER {
   /// EFI_IFR_EXTEND_OP_BANNER\r
   ///\r
   UINT8               ExtendOpCode;\r
-  EFI_STRING_ID       Title;        /// The string token for the banner title\r
-  UINT16              LineNumber;   /// 1-based line number\r
-  UINT8               Alignment;    /// left, center, or right-aligned\r
+  EFI_STRING_ID       Title;        ///< The string token for the banner title\r
+  UINT16              LineNumber;   ///< 1-based line number\r
+  UINT8               Alignment;    ///< left, center, or right-aligned\r
 } EFI_IFR_GUID_BANNER;\r
 \r
 ///\r
@@ -116,7 +116,7 @@ typedef struct _EFI_IFR_GUID_TIMEOUT {
   /// EFI_IFR_EXTEND_OP_TIMEOUT\r
   ///\r
   UINT8               ExtendOpCode;\r
-  UINT16              TimeOut;       /// TimeOut Value\r
+  UINT16              TimeOut;       ///< TimeOut Value\r
 } EFI_IFR_GUID_TIMEOUT;\r
 \r
 #define EFI_NON_DEVICE_CLASS              0x00\r
@@ -140,7 +140,7 @@ typedef struct _EFI_IFR_GUID_CLASS {
   /// EFI_IFR_EXTEND_OP_CLASS\r
   ///\r
   UINT8               ExtendOpCode;\r
-  UINT16              Class;           /// Device Class from the above\r
+  UINT16              Class;           ///< Device Class from the above\r
 } EFI_IFR_GUID_CLASS;\r
 \r
 #define EFI_SETUP_APPLICATION_SUBCLASS    0x00\r
@@ -161,7 +161,7 @@ typedef struct _EFI_IFR_GUID_SUBCLASS {
   /// EFI_IFR_EXTEND_OP_SUBCLASS\r
   ///\r
   UINT8               ExtendOpCode;\r
-  UINT16              SubClass;      ///Sub Class type from the above\r
+  UINT16              SubClass;      ///Sub Class type from the above\r
 } EFI_IFR_GUID_SUBCLASS;\r
 \r
 ///\r
index 2f7c7c6663b70483d08132cfce2138fb768b1ee1..6e4ad1a9ca6ce7a638166499a54da90a928e5c5b 100644 (file)
@@ -1,5 +1,6 @@
 /** @file\r
-  The variable data structure related to EDK II specific UEFI variable implementation.\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
 #define __VARIABLE_FORMAT_H__\r
 \r
 ///\r
-/// Maximum buffer for the single variable.\r
-///\r
-#ifndef MAX_VARIABLE_SIZE\r
-#define MAX_VARIABLE_SIZE                 FixedPcdGet32(PcdMaxVariableSize)\r
-#endif\r
-\r
-///\r
-/// Maximum buffer for Hardware error record variable\r
-///\r
-#ifndef MAX_HARDWARE_ERROR_VARIABLE_SIZE\r
-#define MAX_HARDWARE_ERROR_VARIABLE_SIZE  FixedPcdGet32(PcdMaxHardwareErrorVariableSize)\r
-#endif\r
-\r
-///\r
-/// The alignment of variable's start offset.\r
-/// For IA32/X64 architecture, the alignment is set to 1, and\r
-/// 8 is for IPF archtecture.\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
 #define ALIGNMENT         1\r
 #endif\r
 \r
+//\r
+// Define GET_PAD_SIZE to optimize compiler\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
-/// Variable Store Status\r
+/// Status of Variable Store Region\r
 ///\r
 typedef enum {\r
   EfiRaw,\r
@@ -100,7 +99,7 @@ typedef struct {
 #define VAR_ADDED                     0x3f  ///< Variable has been completely added\r
 \r
 ///\r
-/// Variable Data Header Structure\r
+/// Single Variable Data Header Structure\r
 ///\r
 typedef struct {\r
   ///\r
@@ -125,7 +124,7 @@ typedef struct {
   ///\r
   UINT32      DataSize;\r
   ///\r
-  /// A unique identifier for the vendor.\r
+  /// A unique identifier for the vendor that produce and consume this varaible.\r
   ///\r
   EFI_GUID    VendorGuid;\r
 } VARIABLE_HEADER;\r
index 93a0c8d934d52e12e02815c82994ce392fcd8e42..4298d5fe1808f2a75c1d99d949432a75506a78a8 100644 (file)
@@ -20,8 +20,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #define WORKING_BLOCK_INVALID 0x2\r
 \r
 ///\r
-/// EFI Fault tolerant working block header\r
-/// The header is immediately followed by the write queue.\r
+/// EDKII Fault tolerant working block header\r
+/// The header is immediately followed by the write queue data.\r
 ///\r
 typedef struct {\r
   ///\r
index f13098f8d3035f73b253333a344575d6e4f82d92..8a977003dc44e11aae2b01a9b4a038b868022a8a 100644 (file)
@@ -45,6 +45,6 @@
   BaseMemoryLib\r
 \r
 [Protocols]\r
-  gEfiCrc32GuidedSectionExtractionProtocolGuid     # ALWAYS CONSUMED used as Guid, not protocol service\r
-  gEfiSecurityPolicyProtocolGuid                   # ALWAYS CONSUMED\r
+  gEfiCrc32GuidedSectionExtractionProtocolGuid     ## PRODUCED\r
+  gEfiSecurityPolicyProtocolGuid                   ## SOMETIMES_CONSUMED (Set platform override AUTH status if exist)\r
   
\ No newline at end of file
index 5addb491180874d9089a8f7dabeb7c9f42e49cba..6d7fe083518c35d7bdd10d11207a9c6c3a2d4026 100644 (file)
@@ -2,7 +2,7 @@
 #  \r
 #  Capsule Runtime Drivers produces two UEFI capsule runtime services.\r
 #  (UpdateCapsule, QueryCapsuleCapabilities)\r
-#  It installs the Capsule Architectural Protocol (EDKII definition) to signify \r
+#  It installs the Capsule Architectural Protocol (EDKII extension definition) to signify \r
 #  the capsule runtime services are ready.\r
 #  \r
 #  Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
   UefiRuntimeLib\r
 \r
 [Guids]\r
-  gEfiCapsuleVendorGuid                         # Produce variable L"CapsuleUpdateData" for capsule updated data\r
+  gEfiCapsuleVendorGuid                         ## SOMETIMES_PRODUCED (Process across reset capsule image) ## Variable:L"CapsuleUpdateData" for capsule updated data\r
 \r
 [Protocols]\r
-  gEfiCapsuleArchProtocolGuid                   # PROTOCOL ALWAYS_PRODUCED\r
+  gEfiCapsuleArchProtocolGuid                   #PRODUCED\r
 \r
 [FeaturePcd]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdSupportUpdateCapsuleReset\r
@@ -60,4 +60,4 @@
   gEfiMdeModulePkgTokenSpaceGuid.PcdMaxSizePopulateCapsule\r
 \r
 [Depex]\r
-  gEfiVariableWriteArchProtocolGuid             # Depends on variable write functionality to produce capsule data variable\r
+  gEfiVariableWriteArchProtocolGuid             ## Depends on variable write functionality to produce capsule data variable\r
index ed51c07d18cd39f9466fd9e8564d390aa28d2827..758d128a38e1271e051396ac2057fc90db8400a5 100644 (file)
   DevicePathLib\r
   \r
 [Guids]\r
-  gEfiSystemNvDataFvGuid                        # ALWAYS_CONSUMED, Signature of Working Space Header\r
+  gEfiSystemNvDataFvGuid                        ## CONSUMED ## FV Signature of Working Space Header\r
 \r
 [Protocols]\r
-  gEfiFirmwareVolumeBlockProtocolGuid           # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiFaultTolerantWriteLiteProtocolGuid        # PROTOCOL ALWAYS_PRODUCED\r
+  gEfiFirmwareVolumeBlockProtocolGuid           #CONSUMED\r
+  gEfiFaultTolerantWriteLiteProtocolGuid        #PRODUCED\r
 \r
 [Pcd.common]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize\r
index 01acc1d42dfa23a5aee67795b5e1c49edbeaaa07..44e426e11cf1e5666415c6714883dc353859d93b 100644 (file)
   DebugLib\r
 \r
 [Guids]\r
-  gPcdPeiCallbackFnTableHobGuid                 # ALWAYS_PRODUCED  Hob: GUID_EXTENSION\r
-  gPcdDataBaseHobGuid                           # ALWAYS_PRODUCED  Hob: GUID_EXTENSION\r
-\r
+  gPcdPeiCallbackFnTableHobGuid                 ## RPIVATE   ## Hob\r
+  gPcdDataBaseHobGuid                           ## PRODUCED  ## Hob\r
+  gPcdDataBaseHobGuid                           ## CONSUMED  ## Hob\r
 \r
 [Ppis]\r
-  gEfiPeiReadOnlyVariable2PpiGuid               # PPI ALWAYS_CONSUMED\r
-  gPcdPpiGuid                                   # PPI ALWAYS_PRODUCED\r
+  gEfiPeiReadOnlyVariable2PpiGuid               #CONSUMED\r
+  gPcdPpiGuid                                   #PRODUCED\r
 \r
 [FeaturePcd.common]\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdPeiPcdDatabaseSetEnabled\r
index ce646edc7ba5f74d85dd5a0bfa47b2c72f3f7f55..4bd3c6150a856502e8f4162424a973ec33c2a0e7 100644 (file)
@@ -167,9 +167,8 @@ GetHiiVariable (
                           &Size,\r
                           NULL\r
                           );\r
-  if (Status == EFI_BUFFER_TOO_SMALL) {\r
-\r
 \r
+  if (Status == EFI_BUFFER_TOO_SMALL) {\r
     Status = PeiServicesAllocatePool (Size, &Buffer);\r
     ASSERT_EFI_ERROR (Status);\r
 \r
@@ -187,7 +186,7 @@ GetHiiVariable (
     *VariableData = Buffer;\r
 \r
     return EFI_SUCCESS;\r
-  } \r
+  }\r
 \r
   return EFI_NOT_FOUND;\r
 }\r
index 2a78525785316b7003d7afefc9e0bb89aeaf5c13..308fc08c6e08ee3b4ed0698e5d3c4575ca1a091c 100644 (file)
@@ -45,7 +45,7 @@
 \r
 \r
 [Ppis]\r
-  gEfiPciCfg2PpiGuid                   # PPI ALWAYS_PRODUCED\r
+  gEfiPciCfg2PpiGuid                   #PRODUCED\r
 \r
 [Depex]\r
   TRUE\r
index e4ea60cff2ad75457a066fdaec47606455562d6d..a60e5576de28314861ee4c60e299d3ace8812dbb 100644 (file)
@@ -1,20 +1,5 @@
 /** @file\r
 \r
-Copyright (c) 2007 - 2008, 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
-Module Name:\r
-\r
-  PlatOverMngr.c\r
-\r
-Abstract:\r
-\r
   A UI application to offer a UI interface in device manager to let user configue\r
   platform override protocol to override the default algorithm for matching\r
   drivers to controllers.\r
@@ -27,6 +12,15 @@ Abstract:
   4. The UI application save all the mapping info in NV variables which will be consumed\r
      by platform override protocol driver to publish the platform override protocol.\r
 \r
+Copyright (c) 2007 - 2008, 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
 #include <PiDxe.h>\r
@@ -119,30 +113,33 @@ ConvertComponentNameSupportLanguage (
   IN CHAR8                           *Language\r
   )\r
 {\r
-  CHAR8                              *LangCode;\r
-  LangCode           = NULL;\r
+  CHAR8    *LangCode;\r
+  LangCode = NULL;\r
 \r
   //\r
-  // check the input language is English\r
+  // Check the input language is English\r
   //\r
   if (AsciiStrnCmp (Language, "en-", 3) != 0) {\r
     return NULL;\r
   }\r
-\r
-  //\r
-  // Convert Language string from RFC 3066 to ISO 639-2\r
-  //\r
-  LangCode = AllocateZeroPool(4);\r
-  AsciiStrCpy (LangCode, "eng");\r
   \r
   //\r
-  // Check whether the converted language is supported in the SupportedLanguages list.\r
+  // Check SupportedLanguages format\r
   //\r
-  if (AsciiStrStr (SupportedLanguages, LangCode) == NULL) {\r
-    FreePool (LangCode);\r
-    return NULL;\r
+  if (AsciiStrStr (SupportedLanguages, "en-") != NULL) {\r
+    //\r
+    // Create RFC 3066 language\r
+    //\r
+    LangCode = AllocateZeroPool(AsciiStrSize (Language));\r
+    AsciiStrCpy (LangCode, Language);\r
+  } else if (AsciiStrStr (SupportedLanguages, "en") != NULL) {\r
+    //\r
+    // Create ISO 639-2 Language\r
+    //\r
+    LangCode = AllocateZeroPool(4);\r
+    AsciiStrCpy (LangCode, "eng");    \r
   }\r
-\r
+  \r
   return LangCode;\r
 }\r
 \r
@@ -193,12 +190,14 @@ GetComponentName (
   if (ComponentName != NULL) {\r
     if (ComponentName->GetDriverName != NULL) {\r
       SupportedLanguage = ConvertComponentNameSupportLanguage (ComponentName->SupportedLanguages, mLanguage);\r
-      Status = ComponentName->GetDriverName (\r
-                                ComponentName,\r
-                                SupportedLanguage,\r
-                                &DriverName\r
-                                );\r
-      FreePool (SupportedLanguage);\r
+      if (SupportedLanguage != NULL) {\r
+        Status = ComponentName->GetDriverName (\r
+                                  ComponentName,\r
+                                  SupportedLanguage,\r
+                                  &DriverName\r
+                                  );\r
+        FreePool (SupportedLanguage);\r
+      }\r
     }\r
   } else if (ComponentName2 != NULL) {\r
     if (ComponentName2->GetDriverName != NULL) {\r
@@ -555,7 +554,10 @@ GetDriverBindingHandleFromImageHandle (
   if (EFI_ERROR (Status) || (DriverBindingHandleCount == 0)) {\r
     return NULL;\r
   }\r
-\r
+  \r
+  //\r
+  // Get the first Driver Binding handle which has the specific image handle.\r
+  //\r
   for (Index = 0; Index < DriverBindingHandleCount; Index++) {\r
     DriverBindingInterface = NULL;\r
     Status = gBS->OpenProtocol (\r
@@ -576,9 +578,6 @@ GetDriverBindingHandleFromImageHandle (
     }\r
   }\r
 \r
-  //\r
-  // If no Driver Binding Protocol instance is found\r
-  //\r
   FreePool (DriverBindingHandleBuffer);\r
   return DriverBindingHandle;\r
 }\r
@@ -1301,7 +1300,7 @@ PlatOverMngrInit (
   EFI_CALLBACK_INFO           *CallbackInfo;\r
   EFI_HANDLE                  DriverHandle;\r
   EFI_FORM_BROWSER2_PROTOCOL       *FormBrowser2;\r
-\r
+  \r
   //\r
   // There should only be one HII protocol\r
   //\r
@@ -1341,7 +1340,7 @@ PlatOverMngrInit (
   //\r
   Status = HiiLibCreateHiiDriverHandle (&DriverHandle);\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto Finish;\r
   }\r
   CallbackInfo->DriverHandle = DriverHandle;\r
 \r
@@ -1355,7 +1354,7 @@ PlatOverMngrInit (
                   &CallbackInfo->ConfigAccess\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto Finish;\r
   }\r
 \r
   //\r
@@ -1377,6 +1376,10 @@ PlatOverMngrInit (
                            );\r
   FreePool (PackageList);\r
 \r
+  if (EFI_ERROR (Status)) {\r
+    goto Finish;\r
+  }\r
+\r
   //\r
   // Locate ConfigRouting protocol\r
   //\r
@@ -1386,7 +1389,7 @@ PlatOverMngrInit (
                   (VOID **) &CallbackInfo->HiiConfigRouting\r
                   );\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto Finish;\r
   }\r
 \r
   //\r
@@ -1411,11 +1414,24 @@ PlatOverMngrInit (
                            NULL,\r
                            NULL\r
                            );\r
+  if (EFI_ERROR (Status)) {\r
+    goto Finish;\r
+  }\r
 \r
   Status = HiiDatabase->RemovePackageList (HiiDatabase, CallbackInfo->RegisteredHandle);\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto Finish;\r
   }\r
-\r
+  \r
   return EFI_SUCCESS;\r
+\r
+Finish:\r
+  if (CallbackInfo->DriverHandle != NULL) {\r
+    HiiLibDestroyHiiDriverHandle (CallbackInfo->DriverHandle);\r
+  }\r
+  if (CallbackInfo != NULL) {\r
+    FreePool (CallbackInfo);\r
+  }\r
+\r
+  return Status;\r
 }\r
index 4ba540e079be79524aa6e152502ef9ff0c629a43..7ba07bcb60dc147b9ed02db593a6893dd4b79d4d 100644 (file)
   GenericBdsLib\r
   \r
 [Guids]\r
-  gEfiGlobalVariableGuid                        # Get value of variable L"PlatformLang". \r
-                                                # this value specifies the platform supported language string (RFC 3066)\r
+  gEfiGlobalVariableGuid                        ## CONSUMED ## Variable:L"PlatformLang" this variable specifies the platform supported language string (RFC 3066 format)\r
 \r
 [Protocols]\r
-  gEfiComponentName2ProtocolGuid                # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiComponentNameProtocolGuid                 # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiFirmwareVolume2ProtocolGuid               # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiDevicePathProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiPciIoProtocolGuid                         # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiBusSpecificDriverOverrideProtocolGuid     # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiDriverBindingProtocolGuid                 # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiLoadedImageProtocolGuid                   # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiLoadedImageDevicePathProtocolGuid         # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiHiiDatabaseProtocolGuid                   # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiFormBrowser2ProtocolGuid                  # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiHiiConfigRoutingProtocolGuid              # PROTOCOL ALWAYS_CONSUMED\r
-  gEfiHiiConfigAccessProtocolGuid               # PROTOCOL ALWAYS_PRODUCED\r
+  gEfiComponentName2ProtocolGuid                ## SOMETIMES_CONSUMED (Get Driver Name if ComponentName2Protocol exists)\r
+  gEfiComponentNameProtocolGuid                 ## SOMETIMES_CONSUMED (Get Driver Name if ComponentNameProtocol exists and ComponentName2Protocol doesn't exist)\r
+  gEfiFirmwareVolume2ProtocolGuid               ## SOMETIMES_CONSUMED (Get Driver Name from EFI UI section if ComponentName2Protocol and ComponentNameProtocol don't exist)\r
+  gEfiPciIoProtocolGuid                         ## SOMETIMES_CONSUMED (Find the PCI device if PciIo protocol is installed)\r
+  gEfiBusSpecificDriverOverrideProtocolGuid     ## SOMETIMES_CONSUMED (Check whether the PCI device contains one or more efi drivers in its option rom by this protocol) \r
+\r
+  gEfiDriverBindingProtocolGuid                 ## SOMETIMES_CONSUMED\r
+  gEfiLoadedImageProtocolGuid                   ## SOMETIMES_CONSUMED\r
+  gEfiLoadedImageDevicePathProtocolGuid         ## SOMETIMES_CONSUMED (Show the drivers in the second page that support DriverBindingProtocol, LoadedImageProtocol and LoadedImageDevicePathProtocol)\r
+  gEfiDevicePathProtocolGuid                    ## SOMETIMES_CONSUMED (Show the controller device in the first page that support DevicePathProtocol)\r
+\r
+  gEfiHiiDatabaseProtocolGuid                   ## CONSUMED\r
+  gEfiFormBrowser2ProtocolGuid                  ## CONSUMED\r
+  gEfiHiiConfigRoutingProtocolGuid              ## CONSUMED\r
+  gEfiHiiConfigAccessProtocolGuid               ## PRODUCED\r
   
\ No newline at end of file
index 299e42c8e8f9d910c0cbae7b2fa53f1c0958559a..90ee5133e2a86bb404836fed89e582af17538e03 100644 (file)
@@ -45,5 +45,5 @@
   UefiBootServicesTableLib\r
 \r
 [Protocols]\r
-  gEfiPlatformDriverOverrideProtocolGuid   # ALWAYS_PRODUCED\r
+  gEfiPlatformDriverOverrideProtocolGuid   #PRODUCED\r
   
\ No newline at end of file
index 71c5a8ef388d3014d8e2d99842bac638203a0184..2d02248b13a5b16d228c55931d35d16dd7783d6c 100644 (file)
@@ -39,7 +39,7 @@
   DebugLib\r
 \r
 [Protocols]\r
-  gEfiSecurityArchProtocolGuid                  # PROTOCOL ALWAYS_PRODUCED\r
+  gEfiSecurityArchProtocolGuid                  #PRODUCED\r
 \r
 [Depex]\r
   TRUE\r
index f028b717c9bcdcfd21ba58e61fb39ff6d134f558..8954a5fd8e42b99906ea797753779c0662ae4998 100644 (file)
@@ -118,7 +118,7 @@ GetNextVariablePtr (
   VarHeader = (VARIABLE_HEADER *) (GetVariableDataPtr (Variable) + Variable->DataSize + GET_PAD_SIZE (Variable->DataSize));\r
 \r
   if (VarHeader->StartId != VARIABLE_DATA ||\r
-      (sizeof (VARIABLE_HEADER) + VarHeader->DataSize + VarHeader->NameSize) > MAX_VARIABLE_SIZE\r
+      (sizeof (VARIABLE_HEADER) + VarHeader->DataSize + VarHeader->NameSize) > FixedPcdGet32(PcdMaxVariableSize)\r
       ) {\r
     return NULL;\r
   }\r
@@ -485,21 +485,21 @@ SetVariable (
   }\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
   //\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
+  //  the DataSize is limited to maximum size of FixedPcdGet32(PcdMaxVariableSize) bytes.\r
   //\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
@@ -740,15 +740,15 @@ QueryVariableInfo (
   *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
@@ -808,13 +808,13 @@ InitializeVariableStore (
   // Allocate memory for volatile variable store\r
   //\r
   VariableStore = (VARIABLE_STORE_HEADER *) AllocateRuntimePool (\r
-                                              VARIABLE_STORE_SIZE\r
+                                              FixedPcdGet32(PcdVariableStoreSize)\r
                                               );\r
   if (NULL == VariableStore) {\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
-  SetMem (VariableStore, VARIABLE_STORE_SIZE, 0xff);\r
+  SetMem (VariableStore, FixedPcdGet32(PcdVariableStoreSize), 0xff);\r
 \r
   //\r
   // Variable Specific Data\r
@@ -823,7 +823,7 @@ InitializeVariableStore (
   *LastVariableOffset       = sizeof (VARIABLE_STORE_HEADER);\r
 \r
   VariableStore->Signature  = VARIABLE_STORE_SIGNATURE;\r
-  VariableStore->Size       = VARIABLE_STORE_SIZE;\r
+  VariableStore->Size       = FixedPcdGet32(PcdVariableStoreSize);\r
   VariableStore->Format     = VARIABLE_STORE_FORMATTED;\r
   VariableStore->State      = VARIABLE_STORE_HEALTHY;\r
   VariableStore->Reserved   = 0;\r
index 41205067352a406d999965fccef09e54631b637d..3880ed55c975e9afb42f28bd47a970607d8bb569 100644 (file)
@@ -33,18 +33,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/PcdLib.h>\r
 #include <VariableFormat.h>\r
 \r
-#define VARIABLE_STORE_SIZE FixedPcdGet32(PcdVariableStoreSize)\r
-#define SCRATCH_SIZE        FixedPcdGet32(PcdMaxVariableSize)\r
-\r
-//\r
-// Define GET_PAD_SIZE to optimize compiler\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
 #define GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
 \r
 typedef enum {\r
index fe32c113dd11fc3c094f13e604396eecc8290567..7641a760d09fd36bfd1f1d461375e9e8ef170c6b 100644 (file)
@@ -30,17 +30,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include <VariableFormat.h>\r
 \r
-//\r
-// Define GET_PAD_SIZE to optimize compiler\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
-#define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
-\r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
   VARIABLE_HEADER *EndPtr;\r
index f09ed236045bab6fba52d2eaf37257be98ea4d46..745021a0f3cbe3096579a147e6a8fb8b576357f0 100644 (file)
@@ -1225,21 +1225,21 @@ RuntimeServiceSetVariable (
 \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
   //\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
+  //  the DataSize is limited to maximum size of FixedPcdGet32(PcdMaxVariableSize) bytes.\r
   //\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
@@ -1391,7 +1391,7 @@ RuntimeServiceSetVariable (
   //\r
   NextVariable = GetEndPointer ((VARIABLE_STORE_HEADER *) ((UINTN) mVariableModuleGlobal->VariableGlobal.VolatileVariableBase));\r
 \r
-  SetMem (NextVariable, SCRATCH_SIZE, 0xff);\r
+  SetMem (NextVariable, FixedPcdGet32(PcdMaxVariableSize), 0xff);\r
 \r
   NextVariable->StartId     = VARIABLE_DATA;\r
   NextVariable->Attributes  = Attributes;\r
@@ -1690,15 +1690,15 @@ RuntimeServiceQueryVariableInfo (
   *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
@@ -1835,13 +1835,13 @@ VariableCommonInitialize (
   //\r
   // Allocate memory for volatile variable store\r
   //\r
-  VolatileVariableStore = AllocateRuntimePool (VARIABLE_STORE_SIZE + SCRATCH_SIZE);\r
+  VolatileVariableStore = AllocateRuntimePool (FixedPcdGet32(PcdVariableStoreSize) + FixedPcdGet32(PcdMaxVariableSize));\r
   if (VolatileVariableStore == NULL) {\r
     FreePool (mVariableModuleGlobal);\r
     return EFI_OUT_OF_RESOURCES;\r
   }\r
 \r
-  SetMem (VolatileVariableStore, VARIABLE_STORE_SIZE + SCRATCH_SIZE, 0xff);\r
+  SetMem (VolatileVariableStore, FixedPcdGet32(PcdVariableStoreSize) + FixedPcdGet32(PcdMaxVariableSize), 0xff);\r
 \r
   //\r
   //  Variable Specific Data\r
@@ -1850,7 +1850,7 @@ VariableCommonInitialize (
   mVariableModuleGlobal->VolatileLastVariableOffset = (UINTN) GetStartPointer (VolatileVariableStore) - (UINTN) VolatileVariableStore;\r
 \r
   VolatileVariableStore->Signature                  = VARIABLE_STORE_SIGNATURE;\r
-  VolatileVariableStore->Size                       = VARIABLE_STORE_SIZE;\r
+  VolatileVariableStore->Size                       = FixedPcdGet32(PcdVariableStoreSize);\r
   VolatileVariableStore->Format                     = VARIABLE_STORE_FORMATTED;\r
   VolatileVariableStore->State                      = VARIABLE_STORE_HEALTHY;\r
   VolatileVariableStore->Reserved                   = 0;\r
index 320d1ec562cb72a5b0e54a2730d7ec176910d5ec..5682aa9c34bb0a31de5f986f79c813bd976a1e89 100644 (file)
@@ -37,25 +37,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Guid/GlobalVariable.h>\r
 #include <VariableFormat.h>\r
 \r
-\r
-\r
 #define VARIABLE_RECLAIM_THRESHOLD (1024)\r
 \r
-#define VARIABLE_STORE_SIZE FixedPcdGet32(PcdVariableStoreSize)\r
-#define SCRATCH_SIZE        FixedPcdGet32(PcdMaxVariableSize)\r
-\r
-//\r
-// Define GET_PAD_SIZE to optimize compiler\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
-#define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
-\r
-\r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
   VARIABLE_HEADER *EndPtr;\r