summaryrefslogtreecommitdiff
path: root/Include/Protocol/DataHub.h
blob: 02a9436854ebe2f09ad1eb884a68828f27458df3 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2005, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**             6145-F Northbelt Pkwy, Norcross, GA 30071            **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************
//**********************************************************************
// $Header: /Alaska/BIN/Core/Include/Protocol/DataHub.h 2     3/13/06 1:40a Felixp $
//
// $Revision: 2 $
//
// $Date: 3/13/06 1:40a $
//*****************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/BIN/Core/Include/Protocol/DataHub.h $
// 
// 2     3/13/06 1:40a Felixp
// 
// 1     1/28/05 12:44p Felixp
// 
// 2     1/18/05 3:21p Felixp
// PrintDebugMessage renamed to Trace
// 
// 1     12/23/04 9:41a Felixp
// 
// 1     3/12/04 5:30p Markw
// 
//*****************************************************************************
//<AMI_FHDR_START>
//
// Name:	DataHub_h
//
// Description:	
//
//<AMI_FHDR_END>
//*****************************************************************************
#ifndef _DATA_HUB_PROTOCOL_H_
#define _DATA_HUB_PROTOCOL_H_
#ifdef __cplusplus
extern "C" {
#endif
#include <EFI.h>

#define EFI_DATA_HUB_PROTOCOL_GUID \
	{0xae80d021,0x618e,0x11d4,0xbc,0xd7,0x0,0x80,0xc7,0x3c,0x88,0x81}

GUID_VARIABLE_DECLARATION(gEfiDataHubProtocolGuid,EFI_DATA_HUB_PROTOCOL_GUID);

typedef struct _EFI_DATA_HUB_PROTOCOL EFI_DATA_HUB_PROTOCOL;

typedef struct {
	UINT16		Version;
	UINT16		HeaderSize;
	UINT32		RecordSize;
	EFI_GUID	DataRecordGuid;
	EFI_GUID	ProducerName;
	UINT64		DataRecordClass;
	EFI_TIME	LogTime;
	UINT64		LogMonotonicCount;
} EFI_DATA_RECORD_HEADER;


//************************************************************
// Version value
//************************************************************
#define EFI_DATA_RECORD_HEADER_VERSION	0x0100

//************************************************************
// DataRecordClass values
//************************************************************
//
// Definition of DataRecordClass. These are used to filter
// out data types at a very high level. The
// DataRecord. DataRecordGuid still defines the format
// of the data.
//
#define EFI_DATA_CLASS_DEBUG			0x0000000000000001
#define EFI_DATA_CLASS_ERROR			0x0000000000000002
#define EFI_DATA_CLASS_DATA				0x0000000000000004
#define EFI_DATA_CLASS_PROGRESS_CODE	0x0000000000000008

typedef 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
);

typedef EFI_STATUS (EFIAPI *EFI_DATA_HUB_GET_NEXT_DATA_RECORD) (
	IN EFI_DATA_HUB_PROTOCOL	*This,
	IN OUT UINT64				*MonotonicCount,
	IN EFI_EVENT				*FilterDriver OPTIONAL,
	OUT	EFI_DATA_RECORD_HEADER	**Record
);

typedef EFI_STATUS (EFIAPI *EFI_DATA_HUB_REGISTER_DATA_FILTER_DRIVER) (
	IN EFI_DATA_HUB_PROTOCOL	*This,
	IN EFI_EVENT				FilterEvent,
	IN EFI_TPL					FilterTpl,
	IN UINT64					FilterClass,
	IN EFI_GUID					*FilterDataRecordGuid OPTIONAL
);

typedef EFI_STATUS (EFIAPI *EFI_DATA_HUB_UNREGISTER_DATA_FILTER_DRIVER) (
	IN EFI_DATA_HUB_PROTOCOL	*This,
	IN EFI_EVENT				FilterEvent
);

struct _EFI_DATA_HUB_PROTOCOL {
	EFI_DATA_HUB_LOG_DATA						LogData;
	EFI_DATA_HUB_GET_NEXT_DATA_RECORD			GetNextDataRecord;
	EFI_DATA_HUB_REGISTER_DATA_FILTER_DRIVER	RegisterFilterDriver;
	EFI_DATA_HUB_UNREGISTER_DATA_FILTER_DRIVER	UnregisterFilterDriver;
};

/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif
#endif

//**********************************************************************
//**********************************************************************
//**                                                                  **
//**        (C)Copyright 1985-2005, American Megatrends, Inc.         **
//**                                                                  **
//**                       All Rights Reserved.                       **
//**                                                                  **
//**             6145-F Northbelt Pkwy, Norcross, GA 30071            **
//**                                                                  **
//**                       Phone: (770)-246-8600                      **
//**                                                                  **
//**********************************************************************
//**********************************************************************