FirmwarePerformance.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
/** @file
ACPI Firmware Performance Data Table (FPDT) implementation specific definitions.
Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#ifndef _FIRMWARE_PERFORMANCE_GUID_H_
#define _FIRMWARE_PERFORMANCE_GUID_H_
#include <IndustryStandard/Acpi50.h>
#include <PiPei.h>
#include <Ppi/SecPerformance.h>
///
/// This GUID is used for FPDT implementation specific EFI Variable, LockBox and Hob.
///
/// EFI Variable:
/// GUID - gEfiFirmwarePerformanceGuid
/// Name - EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME
/// Data - FIRMWARE_PERFORMANCE_VARIABLE
///
/// LockBox:
/// GUID - gEfiFirmwarePerformanceGuid
/// Data - EFI_ACPI_BASIC_S3_SUSPEND_PERFORMANCE_RECORD
///
/// Hob:
/// GUID - gEfiFirmwarePerformanceGuid
/// Data - FIRMWARE_SEC_PERFORMANCE (defined in <Ppi/SecPerformance.h>)
///
/// SMI:
/// GUID - gEfiFirmwarePerformanceGuid
/// Data - SMM_BOOT_RECORD_COMMUNICATE
///
/// StatusCodeData:
/// Type - gEfiFirmwarePerformanceGuid
/// Data - One or more boot record
///
#define EFI_FIRMWARE_PERFORMANCE_GUID \
{ \
0xc095791a, 0x3001, 0x47b2, {0x80, 0xc9, 0xea, 0xc7, 0x31, 0x9f, 0x2f, 0xa4 } \
}
#define EFI_FIRMWARE_PERFORMANCE_VARIABLE_NAME L"FirmwarePerformance"
#pragma pack(1)
///
/// Firmware Performance Data Table.
/// This structure will be installed into ACPI table as FPDT in normal boot path.
///
typedef struct {
EFI_ACPI_5_0_FPDT_BOOT_PERFORMANCE_TABLE_POINTER_RECORD BootPointerRecord; ///< Basic Boot Performance Table Pointer record.
EFI_ACPI_5_0_FPDT_S3_PERFORMANCE_TABLE_POINTER_RECORD S3PointerRecord; ///< S3 Performance Table Pointer record.
///
/// S3 Performance Data Table.
/// This structure contains S3 performance records which will be updated in S3
/// suspend and S3 resume boot path.
///
typedef struct {
///
/// Basic Boot Performance Data Table.
/// This structure contains BasicBoot performance record.
///
typedef struct {
//
// one or more boot performance records.
//
///
/// Performance data pointed by Performance Pointer Record.
///
typedef struct {
///
/// Variable defined for FPDT implementation.
/// This Variable is produced by FPDT DXE module and consumed by FPDT PEIM.
///
typedef struct {
#pragma pack()
//
// Log BOOT RECORD from SMM driver on boot time.
//
#define SMM_FPDT_FUNCTION_GET_BOOT_RECORD_SIZE 1
#define SMM_FPDT_FUNCTION_GET_BOOT_RECORD_DATA 2
typedef struct {
extern EFI_GUID gEfiFirmwarePerformanceGuid;
#endif