/* This function abstracts the signaling of the Ready to Boot Event. The Framework moved from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller from how this event is created to prevent to code form having to change with the version of the specification supported.  */
VOID EFIAPI EfiSignalEventReadyToBoot(VOID)
/* This function abstracts the signaling of the Ready to Boot Event. The Framework moved from a proprietary to UEFI 2.0 based mechanism. This library abstracts the caller from how this event is created to prevent to code form having to change with the version of the specification supported.  */
VOID EFIAPI EfiSignalEventReadyToBoot(VOID)
{
  EFI_STATUS  Status;
  EFI_EVENT   ReadyToBootEvent;
  EFI_EVENT   AfterReadyToBootEvent;
  Status = EfiCreateEventReadyToBoot (&ReadyToBootEvent);
  if (!EFI_ERROR (Status)) {
    gBS->SignalEvent (ReadyToBootEvent);
    gBS->CloseEvent (ReadyToBootEvent);
  }
  Status = gBS->CreateEventEx (
                  EVT_NOTIFY_SIGNAL,
                  TPL_CALLBACK,
                  EfiEventEmptyFunction,
                  NULL,
                  &gEfiEventAfterReadyToBootGuid,
                  &AfterReadyToBootEvent
                  );
  if (!EFI_ERROR (Status)) {
    gBS->SignalEvent (AfterReadyToBootEvent);
    gBS->CloseEvent (AfterReadyToBootEvent);
  }
}