OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
DataHub.h
Go to the documentation of this file.
1
21#ifndef __DATA_HUB_H__
22#define __DATA_HUB_H__
23
24#define EFI_DATA_HUB_PROTOCOL_GUID \
25 { \
26 0xae80d021, 0x618e, 0x11d4, {0xbc, 0xd7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } \
27 }
28
29//
30// EFI generic Data Hub Header
31//
32// A Data Record is an EFI_DATA_RECORD_HEADER followed by RecordSize bytes of
33// data. The format of the data is defined by the DataRecordGuid.
34//
35// If EFI_DATA_RECORD_HEADER is extended in the future, the Version number and HeaderSize must
36// change.
37//
38// The logger is responcible for initializing:
39// Version, HeaderSize, RecordSize, DataRecordGuid, DataRecordClass
40//
41// The Data Hub driver is responcible for initializing:
42// LogTime and LogMonotonicCount.
43//
44#define EFI_DATA_RECORD_HEADER_VERSION 0x0100
45typedef struct {
46 UINT16 Version;
47 UINT16 HeaderSize;
48 UINT32 RecordSize;
50 EFI_GUID ProducerName;
52 EFI_TIME LogTime;
55
56//
57// Definition of DataRecordClass. These are used to filter out class types
58// at a very high level. The DataRecordGuid still defines the format of
59// the data. See the Data Hub Specification for rules on what can and can not be a
60// new DataRecordClass
61//
62#define EFI_DATA_RECORD_CLASS_DEBUG 0x0000000000000001
63#define EFI_DATA_RECORD_CLASS_ERROR 0x0000000000000002
64#define EFI_DATA_RECORD_CLASS_DATA 0x0000000000000004
65#define EFI_DATA_RECORD_CLASS_PROGRESS_CODE 0x0000000000000008
66
67//
68// Forward reference for pure ANSI compatability
69//
71
86typedef
87EFI_STATUS
88(EFIAPI *EFI_DATA_HUB_LOG_DATA)(
89 IN EFI_DATA_HUB_PROTOCOL *This,
90 IN EFI_GUID *DataRecordGuid,
91 IN EFI_GUID *ProducerName,
92 IN UINT64 DataRecordClass,
93 IN VOID *RawData,
94 IN UINT32 RawDataSize
95 );
96
124typedef
125EFI_STATUS
127 IN EFI_DATA_HUB_PROTOCOL *This,
128 IN OUT UINT64 *MonotonicCount,
129 IN EFI_EVENT *FilterDriver OPTIONAL,
130 OUT EFI_DATA_RECORD_HEADER **Record
131 );
132
162typedef
163EFI_STATUS
165 IN EFI_DATA_HUB_PROTOCOL *This,
166 IN EFI_EVENT FilterEvent,
167 IN EFI_TPL FilterTpl,
168 IN UINT64 FilterClass,
169 IN EFI_GUID *FilterDataRecordGuid OPTIONAL
170 );
171
186typedef
187EFI_STATUS
189 IN EFI_DATA_HUB_PROTOCOL *This,
190 IN EFI_EVENT FilterEvent
191 );
192
219
220extern EFI_GUID gEfiDataHubProtocolGuid;
221
222#endif
EFI_STATUS(EFIAPI * EFI_DATA_HUB_UNREGISTER_FILTER_DRIVER)(IN EFI_DATA_HUB_PROTOCOL *This, IN EFI_EVENT FilterEvent)
Definition DataHub.h:188
EFI_STATUS(EFIAPI * EFI_DATA_HUB_LOG_DATA)(IN EFI_DATA_HUB_PROTOCOL *This, IN EFI_GUID *DataRecordGuid, IN EFI_GUID *ProducerName, IN UINT64 DataRecordClass, IN VOID *RawData, IN UINT32 RawDataSize)
Definition DataHub.h:88
EFI_STATUS(EFIAPI * EFI_DATA_HUB_REGISTER_FILTER_DRIVER)(IN EFI_DATA_HUB_PROTOCOL *This, IN EFI_EVENT FilterEvent, IN EFI_TPL FilterTpl, IN UINT64 FilterClass, IN EFI_GUID *FilterDataRecordGuid OPTIONAL)
Definition DataHub.h:164
EFI_STATUS(EFIAPI * EFI_DATA_HUB_GET_NEXT_RECORD)(IN EFI_DATA_HUB_PROTOCOL *This, IN OUT UINT64 *MonotonicCount, IN EFI_EVENT *FilterDriver OPTIONAL, OUT EFI_DATA_RECORD_HEADER **Record)
Definition DataHub.h:126
EFI_GUID gEfiDataHubProtocolGuid
EFI_DATA_HUB_UNREGISTER_FILTER_DRIVER UnregisterFilterDriver
Definition DataHub.h:217
EFI_DATA_HUB_GET_NEXT_RECORD GetNextRecord
Definition DataHub.h:207
EFI_DATA_HUB_LOG_DATA LogData
Definition DataHub.h:201
EFI_DATA_HUB_REGISTER_FILTER_DRIVER RegisterFilterDriver
Definition DataHub.h:212
EFI_GUID ProducerName
Definition DataHub.h:50
EFI_GUID DataRecordGuid
Definition DataHub.h:49