summaryrefslogtreecommitdiff
path: root/MdeModulePkg/Include/Guid/DelayedDispatch.h
blob: efea85c87ee26b40dea98bdb60fb9ae2a38603ee (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/** @file
  Definition for structure & defines exported by Delayed Dispatch PPI

  Copyright (c) Microsoft Corporation.

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#pragma once

// Delayed Dispatch table GUID
#define EFI_DELAYED_DISPATCH_TABLE_GUID  {\
  0x4b733449, 0x8eff, 0x488c, { 0x92, 0x1a, 0x15, 0x4a, 0xda, 0x25, 0x18, 0x07 } \
  }

//
// 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[];   // Number of entries is based on PcdDelayedDispatchMaxEntries
} DELAYED_DISPATCH_TABLE;

#pragma pack (pop)

extern EFI_GUID  gEfiDelayedDispatchTableGuid;