audk/MdeModulePkg/Include/Guid/DelayedDispatch.h

48 lines
1.2 KiB
C

/** @file
Definition for structure & defines exported by Delayed Dispatch PPI
Copyright (c), Microsoft Corporation.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef DELAYED_DISPATCH_H_
#define DELAYED_DISPATCH_H_
// Delayed Dispatch table GUID
#define EFI_DELAYED_DISPATCH_TABLE_GUID {\
0x4b733449, 0x8eff, 0x488c, { 0x92, 0x1a, 0x15, 0x4a, 0xda, 0x25, 0x18, 0x07 } \
}
//
// Maximal number of Delayed Dispatch entries supported
//
#define DELAYED_DISPATCH_MAX_ENTRIES 8
//
// Internal structure for delayed dispatch entries.
// Packing the structures here to save space as they will be stored as HOBs.
//
#pragma pack (push, 1)
typedef struct {
EFI_GUID DelayedGroupId;
UINT64 Context;
EFI_DELAYED_DISPATCH_FUNCTION Function;
UINT64 DispatchTime;
UINT32 MicrosecondDelay;
} DELAYED_DISPATCH_ENTRY;
typedef struct {
UINT32 Count;
UINT32 DispCount;
DELAYED_DISPATCH_ENTRY Entry[DELAYED_DISPATCH_MAX_ENTRIES];
} DELAYED_DISPATCH_TABLE;
#pragma pack (pop)
extern EFI_GUID gEfiDelayedDispatchTableGuid;
#endif