EFI_STATUS EFIAPI XenAcpiPlatformEntryPoint ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_STATUS Status; Status = InstallXenArmTables (FindAcpiTableProtocol ()); return Status; }
STATIC VOID EFIAPI OnRootBridgesConnected ( IN EFI_EVENT Event, IN VOID *Context ) { EFI_STATUS Status; DEBUG ((EFI_D_INFO, "%a: root bridges have been connected, installing ACPI tables\n", __FUNCTION__)); Status = InstallAcpiTables (FindAcpiTableProtocol ()); if (EFI_ERROR (Status)) { DEBUG ((EFI_D_ERROR, "%a: InstallAcpiTables: %r\n", __FUNCTION__, Status)); } gBS->CloseEvent (Event); }
EFI_STATUS EFIAPI AcpiPlatformEntryPoint ( IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable ) { EFI_STATUS Status; EFI_EVENT RootBridgesConnected; // // If the platform doesn't support PCI, or PCI enumeration has been disabled, // install the tables at once, and let the entry point's return code reflect // the full functionality. // if (PcdGetBool (PcdPciDisableBusEnumeration)) { DEBUG ((EFI_D_INFO, "%a: PCI or its enumeration disabled, installing " "ACPI tables\n", __FUNCTION__)); return InstallAcpiTables (FindAcpiTableProtocol ()); } // // Otherwise, delay installing the ACPI tables until root bridges are // connected. The entry point's return status will only reflect the callback // setup. (Note that we're a DXE_DRIVER; our entry point function is invoked // strictly before BDS is entered and can connect the root bridges.) // Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_CALLBACK, OnRootBridgesConnected, NULL /* Context */, &gRootBridgesConnectedEventGroupGuid, &RootBridgesConnected); if (!EFI_ERROR (Status)) { DEBUG ((EFI_D_INFO, "%a: waiting for root bridges to be connected, registered callback\n", __FUNCTION__)); } return Status; }