blob: e7b0f7b66010b2acafca19ad9f1323ce3adf5cc7 [file] [log] [blame]
/*++
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name:
exec.h
Abstract:
EFI Event support
--*/
#ifndef _EXEC_H_
#define _EXEC_H_
#define VALID_TPL(a) ((a) <= EFI_TPL_HIGH_LEVEL)
//
// EFI_EVENT
//
#define EVENT_SIGNATURE EFI_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;
BOOLEAN ExFlag;
//
// A list of all runtime events
//
LIST_ENTRY RuntimeLink;
//
// Information by event type
//
union {
//
// For timer events
//
struct {
LIST_ENTRY Link;
UINT64 TriggerTime;
UINT64 Period;
} Timer;
} u;
} IEVENT;
//
// Internal prototypes
//
VOID
CoreDispatchEventNotifies (
IN EFI_TPL Priority
)
/*++
Routine Description:
Dispatches all pending events.
Arguments:
Priority - The task priority level of event notifications to dispatch
Returns:
None
--*/
;
UINTN
CoreHighestSetBit (
IN UINTN Number
)
/*++
Routine Description:
Return the highest set bit
Arguments:
Number - The value to check
Returns:
Bit position of the highest set bit
--*/
;
BOOLEAN
GetInterruptState (
VOID
)
/*++
Routine Description:
Disables CPU interrupts.
Arguments:
This - Protocol instance structure
State - Pointer to the CPU's current interrupt state
Returns:
EFI_SUCCESS - If interrupts were disabled in the CPU.
EFI_INVALID_PARAMETER - State is NULL.
--*/
;
//
// Exported functions
//
VOID
CoreEventVirtualAddressFixup (
VOID
)
/*++
Routine Description:
A function out of date, should be removed.
Arguments:
None
Returns:
None
--*/
;
VOID
CoreInitializeTimer (
VOID
)
/*++
Routine Description:
Initializes timer support
Arguments:
None
Returns:
None
--*/
;
//
// extern data declarations
//
extern EFI_LOCK gEventQueueLock;
extern UINTN gEventPending;
extern LIST_ENTRY gEventQueue[];
extern LIST_ENTRY gEventSignalQueue;
extern UINT8 gHSB[];
extern LIST_ENTRY mRuntimeEventList;
#endif