/** @file UEFI Event support functions and structure. Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.
(C) Copyright 2015 Hewlett Packard Enterprise Development LP
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef __EVENT_H__ #define __EVENT_H__ #define VALID_TPL(a) ((a) <= TPL_HIGH_LEVEL) extern UINTN gEventPending; /// /// Set if Event is part of an event group /// #define EVT_EXFLAG_EVENT_GROUP 0x01 /// /// Set if Event is registered on a protocol notify /// #define EVT_EXFLAG_EVENT_PROTOCOL_NOTIFICATION 0x02 // // EFI_EVENT // /// /// Timer event information /// typedef struct { LIST_ENTRY Link; UINT64 TriggerTime; UINT64 Period; } TIMER_EVENT_INFO; #define EVENT_SIGNATURE SIGNATURE_32('e','v','n','t') typedef struct { UINTN Signature; UINT32 Type; UINT32 SignalCount; /// /// Entry if the event is registered to be signalled /// LIST_ENTRY SignalLink; /// /// Notification information for this event /// EFI_TPL NotifyTpl; EFI_EVENT_NOTIFY NotifyFunction; VOID *NotifyContext; EFI_GUID EventGroup; LIST_ENTRY NotifyLink; UINT8 ExFlag; /// /// A list of all runtime events /// EFI_RUNTIME_EVENT_ENTRY RuntimeData; TIMER_EVENT_INFO Timer; } IEVENT; // // Internal prototypes // /** Dispatches all pending events. @param Priority The task priority level of event notifications to dispatch **/ VOID CoreDispatchEventNotifies ( IN EFI_TPL Priority ); /** Initializes timer support. **/ VOID CoreInitializeTimer ( VOID ); #endif