Home | History | Annotate | Download | only in Event
      1 /** @file
      2   UEFI Event support functions and structure.
      3 
      4 Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
      5 (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
      6 This program and the accompanying materials
      7 are licensed and made available under the terms and conditions of the BSD License
      8 which accompanies this distribution.  The full text of the license may be found at
      9 http://opensource.org/licenses/bsd-license.php
     10 
     11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #ifndef __EVENT_H__
     17 #define __EVENT_H__
     18 
     19 
     20 #define VALID_TPL(a)            ((a) <= TPL_HIGH_LEVEL)
     21 extern  UINTN                   gEventPending;
     22 
     23 ///
     24 /// Set if Event is part of an event group
     25 ///
     26 #define EVT_EXFLAG_EVENT_GROUP                    0x01
     27 ///
     28 /// Set if Event is registered on a protocol notify
     29 ///
     30 #define EVT_EXFLAG_EVENT_PROTOCOL_NOTIFICATION    0x02
     31 
     32 //
     33 // EFI_EVENT
     34 //
     35 
     36 ///
     37 /// Timer event information
     38 ///
     39 typedef struct {
     40   LIST_ENTRY      Link;
     41   UINT64          TriggerTime;
     42   UINT64          Period;
     43 } TIMER_EVENT_INFO;
     44 
     45 #define EVENT_SIGNATURE         SIGNATURE_32('e','v','n','t')
     46 typedef struct {
     47   UINTN                   Signature;
     48   UINT32                  Type;
     49   UINT32                  SignalCount;
     50   ///
     51   /// Entry if the event is registered to be signalled
     52   ///
     53   LIST_ENTRY              SignalLink;
     54   ///
     55   /// Notification information for this event
     56   ///
     57   EFI_TPL                 NotifyTpl;
     58   EFI_EVENT_NOTIFY        NotifyFunction;
     59   VOID                    *NotifyContext;
     60   EFI_GUID                EventGroup;
     61   LIST_ENTRY              NotifyLink;
     62   UINT8                   ExFlag;
     63   ///
     64   /// A list of all runtime events
     65   ///
     66   EFI_RUNTIME_EVENT_ENTRY RuntimeData;
     67   TIMER_EVENT_INFO        Timer;
     68 } IEVENT;
     69 
     70 //
     71 // Internal prototypes
     72 //
     73 
     74 
     75 /**
     76   Dispatches all pending events.
     77 
     78   @param  Priority               The task priority level of event notifications
     79                                  to dispatch
     80 
     81 **/
     82 VOID
     83 CoreDispatchEventNotifies (
     84   IN EFI_TPL      Priority
     85   );
     86 
     87 
     88 /**
     89   Initializes timer support.
     90 
     91 **/
     92 VOID
     93 CoreInitializeTimer (
     94   VOID
     95   );
     96 
     97 #endif
     98