]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTable.c
MdeModulePkg:
[mirror_edk2.git] / MdeModulePkg / Universal / Acpi / AcpiTableDxe / AcpiTable.c
index 42abacb836b25f4d2c2297e8ea4d71249a762969..696974e32534e5ae7d838238b036de4b85e3e39c 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   ACPI Table Protocol Driver\r
 \r
-  Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>\r
   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
@@ -21,6 +21,7 @@
 // Handle to install ACPI Table Protocol\r
 //\r
 EFI_HANDLE    mHandle = NULL;\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_ACPI_TABLE_INSTANCE   *mPrivateData;\r
 \r
 /**\r
   Entry point of the ACPI table driver.\r
@@ -64,12 +65,24 @@ InitializeAcpiTableDxe (
   //\r
   // Install ACPI Table protocol\r
   //\r
-  Status = gBS->InstallMultipleProtocolInterfaces (\r
-                  &mHandle,\r
-                  &gEfiAcpiTableProtocolGuid,\r
-                  &PrivateData->AcpiTableProtocol,\r
-                  NULL\r
-                  );\r
+  if (FeaturePcdGet (PcdInstallAcpiSdtProtocol)) {\r
+    mPrivateData = PrivateData;\r
+    Status = gBS->InstallMultipleProtocolInterfaces (\r
+                    &mHandle,\r
+                    &gEfiAcpiTableProtocolGuid,\r
+                    &PrivateData->AcpiTableProtocol,\r
+                    &gEfiAcpiSdtProtocolGuid,\r
+                    &mPrivateData->AcpiSdtProtocol,\r
+                    NULL\r
+                    );\r
+  } else {\r
+    Status = gBS->InstallMultipleProtocolInterfaces (\r
+                    &mHandle,\r
+                    &gEfiAcpiTableProtocolGuid,\r
+                    &PrivateData->AcpiTableProtocol,\r
+                    NULL\r
+                    );\r
+  }\r
   ASSERT_EFI_ERROR (Status);\r
 \r
   return Status;\r