+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
-Module Name:\r
-\r
- DataHub.h\r
-\r
-Abstract:\r
-\r
- The data hub protocol is used both by agents wishing to log\r
- data and those wishing to be made aware of all information that\r
- has been logged.\r
-\r
- For more information please look at Intel Platform Innovation \r
- Framework for EFI Data Hub Specification.\r
-\r
---*/\r
-\r
-#ifndef __DATA_HUB_H__\r
-#define __DATA_HUB_H__\r
-\r
-#define EFI_DATA_HUB_PROTOCOL_GUID \\r
- { \\r
- 0xae80d021, 0x618e, 0x11d4, {0xbc, 0xd7, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} \\r
- }\r
-\r
-//\r
-// EFI generic Data Hub Header\r
-//\r
-// A Data Record is an EFI_DATA_RECORD_HEADER followed by RecordSize bytes of\r
-// data. The format of the data is defined by the DataRecordGuid.\r
-//\r
-// If EFI_DATA_RECORD_HEADER is extended in the future the Version number must\r
-// change and the HeaderSize will change if the definition of\r
-// EFI_DATA_RECORD_HEADER is extended.\r
-//\r
-// The logger is responcible for initializing:\r
-// Version, HeaderSize, RecordSize, DataRecordGuid, DataRecordClass\r
-//\r
-// The Data Hub driver is responcible for initializing:\r
-// LogTime and LogMonotonicCount.\r
-//\r
-#define EFI_DATA_RECORD_HEADER_VERSION 0x0100\r
-typedef struct {\r
- UINT16 Version;\r
- UINT16 HeaderSize;\r
- UINT32 RecordSize;\r
- EFI_GUID DataRecordGuid;\r
- EFI_GUID ProducerName;\r
- UINT64 DataRecordClass;\r
- EFI_TIME LogTime;\r
- UINT64 LogMonotonicCount;\r
-} EFI_DATA_RECORD_HEADER;\r
-\r
-//\r
-// Definition of DataRecordClass. These are used to filter out class types\r
-// at a very high level. The DataRecordGuid still defines the format of\r
-// the data. See DateHub.doc for rules on what can and can not be a\r
-// new DataRecordClass\r
-//\r
-#define EFI_DATA_RECORD_CLASS_DEBUG 0x0000000000000001\r
-#define EFI_DATA_RECORD_CLASS_ERROR 0x0000000000000002\r
-#define EFI_DATA_RECORD_CLASS_DATA 0x0000000000000004\r
-#define EFI_DATA_RECORD_CLASS_PROGRESS_CODE 0x0000000000000008\r
-\r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
-EFI_FORWARD_DECLARATION (EFI_DATA_HUB_PROTOCOL);\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_DATA_HUB_LOG_DATA) (\r
- IN EFI_DATA_HUB_PROTOCOL * This,\r
- IN EFI_GUID * DataRecordGuid,\r
- IN EFI_GUID * ProducerName,\r
- IN UINT64 DataRecordClass,\r
- IN VOID *RawData,\r
- IN UINT32 RawDataSize\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_DATA_HUB_GET_NEXT_RECORD) (\r
- IN EFI_DATA_HUB_PROTOCOL * This,\r
- IN OUT UINT64 *MonotonicCount,\r
- IN EFI_EVENT * FilterDriver OPTIONAL,\r
- OUT EFI_DATA_RECORD_HEADER **Record\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_DATA_HUB_REGISTER_FILTER_DRIVER) (\r
- IN EFI_DATA_HUB_PROTOCOL * This,\r
- IN EFI_EVENT FilterEvent,\r
- IN EFI_TPL FilterTpl,\r
- IN UINT64 FilterClass,\r
- IN EFI_GUID * FilterDataRecordGuid OPTIONAL\r
- );\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_DATA_HUB_UNREGISTER_FILTER_DRIVER) (\r
- IN EFI_DATA_HUB_PROTOCOL * This,\r
- IN EFI_EVENT FilterEvent\r
- );\r
-\r
-struct _EFI_DATA_HUB_PROTOCOL {\r
- EFI_DATA_HUB_LOG_DATA LogData;\r
- EFI_DATA_HUB_GET_NEXT_RECORD GetNextRecord;\r
- EFI_DATA_HUB_REGISTER_FILTER_DRIVER RegisterFilterDriver;\r
- EFI_DATA_HUB_UNREGISTER_FILTER_DRIVER UnregisterFilterDriver;\r
-};\r
-\r
-extern EFI_GUID gEfiDataHubProtocolGuid;\r
-\r
-#endif\r