+++ /dev/null
-/** @file\r
- This is an implementation of the ACPI Support protocol. This is defined in\r
- the Tiano ACPI External Product Specification, revision 0.3.6.\r
-\r
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
-\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-//\r
-// Includes\r
-//\r
-#include "AcpiSupport.h"\r
-\r
-//\r
-// Handle to install ACPI Table Protocol (and ACPI Suppport protocol).\r
-//\r
-EFI_HANDLE mHandle = NULL;\r
-\r
-/**\r
- Entry point of the ACPI support driver. This function creates and initializes an instance of the ACPI Support\r
- Protocol and installs it on a new handle.\r
-\r
- @param ImageHandle A handle for the image that is initializing this driver\r
- @param SystemTable A pointer to the EFI system table\r
-\r
- @retval EFI_SUCCESS Driver initialized successfully\r
- @retval EFI_LOAD_ERROR Failed to Initialize or has been loaded\r
- @retval EFI_OUT_OF_RESOURCES Could not allocate needed resources\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-InstallAcpiSupport (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
- )\r
-\r
-{\r
- EFI_STATUS Status;\r
- EFI_ACPI_SUPPORT_INSTANCE *PrivateData;\r
-\r
- //\r
- // Initialize our protocol\r
- //\r
- PrivateData = AllocateZeroPool (sizeof (EFI_ACPI_SUPPORT_INSTANCE));\r
- ASSERT (PrivateData);\r
- PrivateData->Signature = EFI_ACPI_SUPPORT_SIGNATURE;\r
-\r
- //\r
- // Call all constructors per produced protocols\r
- //\r
- Status = AcpiSupportAcpiSupportConstructor (PrivateData);\r
- if (EFI_ERROR (Status)) {\r
- gBS->FreePool (PrivateData);\r
- return EFI_LOAD_ERROR;\r
- }\r
-\r
- //\r
- // Install ACPI Table protocol and optional ACPI support protocol based on\r
- // feature flag: PcdInstallAcpiSupportProtocol.\r
- //\r
- if (FeaturePcdGet (PcdInstallAcpiSupportProtocol)) {\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &mHandle,\r
- &gEfiAcpiTableProtocolGuid,\r
- &PrivateData->AcpiTableProtocol,\r
- &gEfiAcpiSupportProtocolGuid,\r
- &PrivateData->AcpiSupport,\r
- NULL\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
- } else {\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &mHandle,\r
- &gEfiAcpiTableProtocolGuid,\r
- &PrivateData->AcpiTableProtocol,\r
- NULL\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
- }\r
-\r
- return Status;\r
-}\r