/** @file Implementation of event and timer related services in the UEFI Boot Services table for use in unit tests. Copyright (c) Microsoft Corporation SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "UnitTestUefiBootServicesTableLib.h" /** Creates an event. @param Type The type of event to create and its mode and attributes @param NotifyTpl The task priority level of event notifications @param NotifyFunction Pointer to the events notification function @param NotifyContext Pointer to the notification functions context corresponds to parameter "Context" in the notification function @param Event Pointer to the newly created event if the call succeeds undefined otherwise @retval EFI_SUCCESS The event structure was created @retval EFI_INVALID_PARAMETER One of the parameters has an invalid value @retval EFI_OUT_OF_RESOURCES The event could not be allocated **/ EFI_STATUS EFIAPI UnitTestCreateEvent ( IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL IN VOID *NotifyContext, OPTIONAL OUT EFI_EVENT *Event ) { return EFI_NOT_AVAILABLE_YET; } /** Sets the type of timer and the trigger time for a timer event. @param UserEvent The timer event that is to be signaled at the specified time @param Type The type of time that is specified in TriggerTime @param TriggerTime The number of 100ns units until the timer expires @retval EFI_SUCCESS The event has been set to be signaled at the requested time @retval EFI_INVALID_PARAMETER Event or Type is not valid **/ EFI_STATUS EFIAPI UnitTestSetTimer ( IN EFI_EVENT UserEvent, IN EFI_TIMER_DELAY Type, IN UINT64 TriggerTime ) { return EFI_NOT_AVAILABLE_YET; } /** Stops execution until an event is signaled. @param NumberOfEvents The number of events in the UserEvents array @param UserEvents An array of EFI_EVENT @param UserIndex Pointer to the index of the event which satisfied the wait condition @retval EFI_SUCCESS The event indicated by Index was signaled. @retval EFI_INVALID_PARAMETER The event indicated by Index has a notification function or Event was not a valid type @retval EFI_UNSUPPORTED The current TPL is not TPL_APPLICATION **/ EFI_STATUS EFIAPI UnitTestWaitForEvent ( IN UINTN NumberOfEvents, IN EFI_EVENT *UserEvents, OUT UINTN *UserIndex ) { return EFI_NOT_AVAILABLE_YET; } /** Signals the event. Queues the event to be notified if needed. @param UserEvent The event to signal . @retval EFI_INVALID_PARAMETER Parameters are not valid. @retval EFI_SUCCESS The event was signaled. **/ EFI_STATUS EFIAPI UnitTestSignalEvent ( IN EFI_EVENT UserEvent ) { return EFI_NOT_AVAILABLE_YET; } /** Closes an event and frees the event structure. @param UserEvent Event to close @retval EFI_INVALID_PARAMETER Parameters are not valid. @retval EFI_SUCCESS The event has been closed **/ EFI_STATUS EFIAPI UnitTestCloseEvent ( IN EFI_EVENT UserEvent ) { return EFI_NOT_AVAILABLE_YET; } /** Check the status of an event. @param UserEvent The event to check @retval EFI_SUCCESS The event is in the signaled state @retval EFI_NOT_READY The event is not in the signaled state @retval EFI_INVALID_PARAMETER Event is of type EVT_NOTIFY_SIGNAL **/ EFI_STATUS EFIAPI UnitTestCheckEvent ( IN EFI_EVENT UserEvent ) { return EFI_NOT_AVAILABLE_YET; } /** Creates an event in a group. @param Type The type of event to create and its mode and attributes @param NotifyTpl The task priority level of event notifications @param NotifyFunction Pointer to the events notification function @param NotifyContext Pointer to the notification functions context corresponds to parameter "Context" in the notification function @param EventGroup GUID for EventGroup if NULL act the same as gBS->CreateEvent(). @param Event Pointer to the newly created event if the call succeeds undefined otherwise @retval EFI_SUCCESS The event structure was created @retval EFI_INVALID_PARAMETER One of the parameters has an invalid value @retval EFI_OUT_OF_RESOURCES The event could not be allocated **/ EFI_STATUS EFIAPI UnitTestCreateEventEx ( IN UINT32 Type, IN EFI_TPL NotifyTpl, IN EFI_EVENT_NOTIFY NotifyFunction, OPTIONAL IN CONST VOID *NotifyContext, OPTIONAL IN CONST EFI_GUID *EventGroup, OPTIONAL OUT EFI_EVENT *Event ) { return EFI_NOT_AVAILABLE_YET; }