// /** @file
// This module installs ACPI Firmware Performance Data Table (FPDT).
//
// This module registers report status code listener to collect performance data
// for Firmware Basic Boot Performance Record and other boot performance records,
// and install FPDT to ACPI table.
//
// Copyright (c) 2011 - 2014, 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
// http://opensource.org/licenses/bsd-license.php
// 
// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "Installs ACPI Firmware Performance Data Table (FPDT)"

#string STR_MODULE_DESCRIPTION          #language en-US "This module registers report status code listener to collect performance data for Firmware Basic Boot Performance Record and other boot performance records, and installs FPDT to the ACPI table."

