/** @file Copyright (c) 2014, Applied Micro Curcuit Corporation. All rights reserved.
Copyright (c) 2015 - 2020, Hisilicon Limited. All rights reserved.
Copyright (c) 2015, Linaro Limited. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "UpdateDsdt.h" EFI_EVENT mUpdateAcpiDsdtTableEvent; VOID EFIAPI UpdateAcpiDsdt ( IN EFI_EVENT Event, IN VOID *Context ) { EFI_ACPI_TABLE_PROTOCOL *AcpiTableProtocol; EFI_STATUS Status; Status = gBS->LocateProtocol ( &gEfiAcpiTableProtocolGuid, NULL, (VOID**)&AcpiTableProtocol ); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, " Unable to locate ACPI table protocol\n")); return; } Status = UpdateAcpiDsdtTable (); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, " UpdateAcpiDsdtTable Failed, Status = %r\n", Status)); } gBS->CloseEvent (Event); return; } EFI_STATUS EFIAPI AcpiPlatformEntryPoint ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_STATUS Status; // // Register notify function // Status = gBS->CreateEventEx ( EVT_NOTIFY_SIGNAL, TPL_CALLBACK, UpdateAcpiDsdt, NULL, &gEfiEventReadyToBootGuid, &mUpdateAcpiDsdtTableEvent ); if (EFI_ERROR (Status)) { DEBUG ((DEBUG_ERROR, "Create ReadyToBoot event for UpdateAcpiDsdt failed.\n")); } else { DEBUG ((DEBUG_INFO, "Create ReadyToBoot event for UpdateAcpiDsdt success.\n")); } return Status; }