]> git.proxmox.com Git - mirror_edk2.git/blobdiff - DuetPkg/DataHubGenDxe/DataHubGen.c
HII Library Class interface refine.
[mirror_edk2.git] / DuetPkg / DataHubGenDxe / DataHubGen.c
index 24b2c636be6e44666e83730cf7f2c149df406cc3..937425fb8f7aa5a18335b209f59708e12243eeda 100644 (file)
@@ -1,4 +1,4 @@
-/*++\r
+/** @file\r
 \r
 Copyright (c) 2006 - 2007, Intel Corporation                                                         \r
 All rights reserved. This program and the accompanying materials                          \r
@@ -15,11 +15,11 @@ Module Name:
 \r
 Abstract:\r
 \r
---*/\r
+**/\r
 \r
 #include "DataHubGen.h"\r
+EFI_HII_DATABASE_PROTOCOL        *gHiiDatabase;\r
 \r
-EFI_HII_PROTOCOL            *gHii;\r
 extern UINT8                DataHubGenDxeStrings[];\r
 \r
 EFI_DATA_HUB_PROTOCOL       *gDataHub;\r
@@ -30,45 +30,23 @@ GetSmbiosTablesFromHob (
   VOID\r
   )\r
 {\r
-  EFI_STATUS                  Status;\r
-  EFI_HOB_HANDOFF_INFO_TABLE  *HobList;\r
   EFI_PHYSICAL_ADDRESS       *Table;\r
-\r
+  EFI_PEI_HOB_POINTERS        GuidHob;\r
   //\r
   // Get Hob List\r
   //\r
-  \r
-  Status = EfiGetSystemConfigurationTable (&gEfiHobListGuid, (VOID *) &HobList);\r
-  if (EFI_ERROR (Status)) {\r
-    return NULL;\r
-  }\r
-\r
-  //\r
-  // If there is a SMBIOS table in the HOB add it to the EFI System table\r
-  //\r
-  Table = GetNextGuidHob (&gEfiSmbiosTableGuid, &HobList);\r
-\r
-  if (!EFI_ERROR (Status)) {\r
-    return (VOID *)(UINTN)*Table;\r
+  GuidHob.Raw = GetHobList ();\r
+  GuidHob.Raw = GetNextGuidHob (&gEfiSmbiosTableGuid, GuidHob.Raw);\r
+  if (GuidHob.Raw != NULL) {\r
+    Table = GET_GUID_HOB_DATA (GuidHob.Guid);\r
+    if (Table != NULL) {\r
+      return (VOID *)(UINTN)*Table;\r
+    }\r
   }\r
 \r
   return NULL;\r
 }\r
 \r
-EFI_STATUS\r
-PrepareHiiPackage (\r
-  VOID\r
-  )\r
-{\r
-  EFI_HII_PACKAGES                  *PackageList;\r
-  EFI_STATUS                        Status;\r
-\r
-  PackageList   = PreparePackages (1, &gEfiMiscProducerGuid, DataHubGenDxeStrings);\r
-  Status        = gHii->NewPack (gHii, PackageList, &gStringHandle);\r
-\r
-  return Status;\r
-}\r
-\r
 EFI_SUBCLASS_TYPE1_HEADER mCpuDataRecordHeader = {\r
   EFI_PROCESSOR_SUBCLASS_VERSION,       // Version\r
   sizeof (EFI_SUBCLASS_TYPE1_HEADER),   // Header Size\r
@@ -126,10 +104,8 @@ InstallProcessorDataHub (
   ASSERT (UString != NULL);\r
   AsciiStrToUnicodeStr (AString, UString);\r
 \r
-  Token  = 0;\r
-  Status = gHii->NewString (gHii, NULL, gStringHandle, &Token, UString);\r
-\r
-  if (EFI_ERROR (Status)) {\r
+  Token = HiiSetString (gStringHandle, 0, UString, NULL);\r
+  if (Token == 0) {\r
     gBS->FreePool (UString);\r
     return ;\r
   }\r
@@ -171,7 +147,6 @@ InstallMemoryDataHub (
   IN VOID                  *Smbios\r
   )\r
 {\r
-  EFI_STATUS                        Status;\r
   SMBIOS_STRUCTURE_POINTER          SmbiosTable;\r
   EFI_MEMORY_SUBCLASS_DRIVER_DATA   DataRecord;\r
 \r
@@ -196,12 +171,12 @@ InstallMemoryDataHub (
   DataRecord.Record.ArrayStartAddress.MemoryArrayStartAddress = LShiftU64(SmbiosTable.Type19->StartingAddress, 10);\r
   DataRecord.Record.ArrayStartAddress.MemoryArrayEndAddress = LShiftU64((UINT64) SmbiosTable.Type19->EndingAddress + 1, 10) - 1;\r
   \r
-  DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.ProducerName = gEfiMemoryProducerGuid;\r
+  CopyGuid (&DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.ProducerName, &gEfiMemoryProducerGuid);\r
   DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.Instance = 0;\r
   DataRecord.Record.ArrayStartAddress.PhysicalMemoryArrayLink.SubInstance = EFI_SUBCLASS_INSTANCE_NON_APPLICABLE;\r
   DataRecord.Record.ArrayStartAddress.MemoryArrayPartitionWidth = (UINT16)(SmbiosTable.Type19->PartitionWidth); \r
 \r
-  Status = gDataHub->LogData (\r
+  gDataHub->LogData (\r
                        gDataHub,\r
                        &gEfiMemorySubClassGuid,\r
                        &gEfiMiscProducerGuid,\r
@@ -256,10 +231,8 @@ InstallMiscDataHub (
   CopyMem (UString, FIRMWARE_BIOS_VERSIONE, sizeof(FIRMWARE_BIOS_VERSIONE));\r
   AsciiStrToUnicodeStr (AString, UString + sizeof(FIRMWARE_BIOS_VERSIONE) / sizeof(CHAR16) - 1);\r
 \r
-  Token  = 0;\r
-  Status = gHii->NewString (gHii, NULL, gStringHandle, &Token, UString);\r
-\r
-  if (EFI_ERROR (Status)) {\r
+  Token = HiiSetString (gStringHandle, 0, UString, NULL);\r
+  if (Token == 0) {\r
     gBS->FreePool (UString);\r
     return ;\r
   }\r
@@ -306,13 +279,8 @@ InstallMiscDataHub (
   CopyMem (UString, FIRMWARE_PRODUCT_NAME, sizeof(FIRMWARE_PRODUCT_NAME));\r
   AsciiStrToUnicodeStr (AString, UString + sizeof(FIRMWARE_PRODUCT_NAME) / sizeof(CHAR16) - 1);\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
-  Status = IfrLibNewString (gStringHandle, &Token, UString);\r
-#else\r
-  Token  = 0;\r
-  Status = gHii->NewString (gHii, NULL, gStringHandle, &Token, UString);\r
-#endif\r
-  if (EFI_ERROR (Status)) {\r
+  Token = HiiSetString (gStringHandle, 0, UString, NULL);\r
+  if (Token == 0) {\r
     gBS->FreePool (UString);\r
     return ;\r
   }\r
@@ -324,7 +292,7 @@ InstallMiscDataHub (
   DataRecord.Record.MiscSystemManufacturer.SystemVersion  = 0;\r
   DataRecord.Record.MiscSystemManufacturer.SystemSerialNumber  = 0;\r
 //  DataRecord.Record.MiscSystemManufacturer.SystemUuid  = {0};\r
-  DataRecord.Record.MiscSystemManufacturer.SystemWakeupType  = 0;\r
+  DataRecord.Record.MiscSystemManufacturer.SystemWakeupType  = EfiSystemWakeupTypeReserved;\r
   DataRecord.Record.MiscSystemManufacturer.SystemSKUNumber  = 0;\r
   DataRecord.Record.MiscSystemManufacturer.SystemFamily  = 0;\r
 \r
@@ -350,7 +318,6 @@ DataHubGenEntrypoint (
   EFI_STATUS              Status;\r
   VOID                    *Smbios;\r
 \r
-\r
   Smbios = GetSmbiosTablesFromHob ();\r
   if (Smbios == NULL) {\r
     return EFI_NOT_FOUND;\r
@@ -359,30 +326,29 @@ DataHubGenEntrypoint (
   Status = gBS->LocateProtocol (\r
                   &gEfiDataHubProtocolGuid,\r
                   NULL,\r
-                  &gDataHub\r
+                  (VOID**)&gDataHub\r
                   );\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
 \r
-#if (EFI_SPECIFICATION_VERSION >= 0x0002000A)\r
   Status = gBS->LocateProtocol (\r
                   &gEfiHiiDatabaseProtocolGuid,\r
                   NULL,\r
-                  &gHiiDatabase\r
-                  );\r
-#else\r
-  Status = gBS->LocateProtocol (\r
-                  &gEfiHiiProtocolGuid,\r
-                  NULL,\r
-                  &gHii\r
+                  (VOID**)&gHiiDatabase\r
                   );\r
-#endif\r
+\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
-\r
-  PrepareHiiPackage ();\r
+  \r
+  gStringHandle = HiiAddPackages (\r
+                    &gEfiMiscProducerGuid,\r
+                    NULL,\r
+                    DataHubGenDxeStrings,\r
+                    NULL\r
+                    );\r
+  ASSERT (gStringHandle != NULL);\r
 \r
   InstallProcessorDataHub (Smbios);\r
   InstallCacheDataHub     (Smbios);\r