From 7f05fa00f73038b425002566d3afe6c3ade2ccdb Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Thu, 22 Dec 2016 15:55:38 +0800 Subject: MdeModulePkg: Move to new location Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang --- .../Library/SmmPerformanceLib/SmmPerformanceLib.c | 451 --------------------- .../SmmPerformanceLib/SmmPerformanceLib.inf | 57 --- .../SmmPerformanceLib/SmmPerformanceLib.uni | Bin 2848 -> 0 bytes 3 files changed, 508 deletions(-) delete mode 100644 MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.c delete mode 100644 MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf delete mode 100644 MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.uni (limited to 'MdeModulePkg/Library/SmmPerformanceLib') diff --git a/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.c b/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.c deleted file mode 100644 index c01d16d1eb..0000000000 --- a/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.c +++ /dev/null @@ -1,451 +0,0 @@ -/** @file - Performance Library used in SMM phase. - - This library instance provides infrastructure for SMM drivers to log performance - data. It consumes SMM PerformanceEx or Performance Protocol published by SmmCorePerformanceLib - to log performance data. If both SMM PerformanceEx and Performance Protocol are not available, it does not log any - performance information. - - Copyright (c) 2011 - 2012, Intel Corporation. All rights reserved.
-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. - -**/ - - -#include - -#include -#include -#include -#include -#include - -// -// The cached SMM Performance Protocol and SMM PerformanceEx Protocol interface. -// -PERFORMANCE_PROTOCOL *mPerformance = NULL; -PERFORMANCE_EX_PROTOCOL *mPerformanceEx = NULL; -BOOLEAN mPerformanceMeasurementEnabled; - -/** - The constructor function initializes the Performance Measurement Enable flag - - @param ImageHandle The firmware allocated handle for the EFI image. - @param SystemTable A pointer to the EFI System Table. - - @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS. - -**/ -EFI_STATUS -EFIAPI -SmmPerformanceLibConstructor ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - - mPerformanceMeasurementEnabled = (BOOLEAN) ((PcdGet8(PcdPerformanceLibraryPropertyMask) & PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED) != 0); - - return EFI_SUCCESS; -} - -/** - The function caches the pointers to SMM PerformanceEx protocol and Performance Protocol. - - The function locates SMM PerformanceEx protocol and Performance Protocol from protocol database. - - @retval EFI_SUCCESS SMM PerformanceEx protocol or Performance Protocol is successfully located. - @retval EFI_NOT_FOUND Both SMM PerformanceEx protocol and Performance Protocol are not located to log performance. - -**/ -EFI_STATUS -GetPerformanceProtocol ( - VOID - ) -{ - EFI_STATUS Status; - PERFORMANCE_PROTOCOL *Performance; - PERFORMANCE_EX_PROTOCOL *PerformanceEx; - - if (mPerformanceEx != NULL || mPerformance != NULL) { - return EFI_SUCCESS; - } - - Status = gSmst->SmmLocateProtocol (&gSmmPerformanceExProtocolGuid, NULL, (VOID **) &PerformanceEx); - if (!EFI_ERROR (Status)) { - ASSERT (PerformanceEx != NULL); - // - // Cache PerformanceEx Protocol. - // - mPerformanceEx = PerformanceEx; - return EFI_SUCCESS; - } - - Status = gSmst->SmmLocateProtocol (&gSmmPerformanceProtocolGuid, NULL, (VOID **) &Performance); - if (!EFI_ERROR (Status)) { - ASSERT (Performance != NULL); - // - // Cache performance protocol. - // - mPerformance = Performance; - return EFI_SUCCESS; - } - - return EFI_NOT_FOUND; -} - -/** - Creates a record for the beginning of a performance measurement. - - Creates a record that contains the Handle, Token, Module and Identifier. - If TimeStamp is not zero, then TimeStamp is added to the record as the start time. - If TimeStamp is zero, then this function reads the current time stamp - and adds that time stamp value to the record as the start time. - - @param Handle Pointer to environment specific context used - to identify the component being measured. - @param Token Pointer to a Null-terminated ASCII string - that identifies the component being measured. - @param Module Pointer to a Null-terminated ASCII string - that identifies the module being measured. - @param TimeStamp 64-bit time stamp. - @param Identifier 32-bit identifier. If the value is 0, the created record - is same as the one created by StartPerformanceMeasurement. - - @retval RETURN_SUCCESS The start of the measurement was recorded. - @retval RETURN_OUT_OF_RESOURCES There are not enough resources to record the measurement. - -**/ -RETURN_STATUS -EFIAPI -StartPerformanceMeasurementEx ( - IN CONST VOID *Handle, OPTIONAL - IN CONST CHAR8 *Token, OPTIONAL - IN CONST CHAR8 *Module, OPTIONAL - IN UINT64 TimeStamp, - IN UINT32 Identifier - ) -{ - EFI_STATUS Status; - - Status = GetPerformanceProtocol (); - if (EFI_ERROR (Status)) { - return RETURN_OUT_OF_RESOURCES; - } - - if (mPerformanceEx != NULL) { - Status = mPerformanceEx->StartGaugeEx (Handle, Token, Module, TimeStamp, Identifier); - } else if (mPerformance != NULL) { - Status = mPerformance->StartGauge (Handle, Token, Module, TimeStamp); - } else { - ASSERT (FALSE); - } - - return (RETURN_STATUS) Status; -} - -/** - Fills in the end time of a performance measurement. - - Looks up the record that matches Handle, Token, Module and Identifier. - If the record can not be found then return RETURN_NOT_FOUND. - If the record is found and TimeStamp is not zero, - then TimeStamp is added to the record as the end time. - If the record is found and TimeStamp is zero, then this function reads - the current time stamp and adds that time stamp value to the record as the end time. - - @param Handle Pointer to environment specific context used - to identify the component being measured. - @param Token Pointer to a Null-terminated ASCII string - that identifies the component being measured. - @param Module Pointer to a Null-terminated ASCII string - that identifies the module being measured. - @param TimeStamp 64-bit time stamp. - @param Identifier 32-bit identifier. If the value is 0, the found record - is same as the one found by EndPerformanceMeasurement. - - @retval RETURN_SUCCESS The end of the measurement was recorded. - @retval RETURN_NOT_FOUND The specified measurement record could not be found. - -**/ -RETURN_STATUS -EFIAPI -EndPerformanceMeasurementEx ( - IN CONST VOID *Handle, OPTIONAL - IN CONST CHAR8 *Token, OPTIONAL - IN CONST CHAR8 *Module, OPTIONAL - IN UINT64 TimeStamp, - IN UINT32 Identifier - ) -{ - EFI_STATUS Status; - - Status = GetPerformanceProtocol (); - if (EFI_ERROR (Status)) { - return RETURN_NOT_FOUND; - } - - if (mPerformanceEx != NULL) { - Status = mPerformanceEx->EndGaugeEx (Handle, Token, Module, TimeStamp, Identifier); - } else if (mPerformance != NULL) { - Status = mPerformance->EndGauge (Handle, Token, Module, TimeStamp); - } else { - ASSERT (FALSE); - } - - return (RETURN_STATUS) Status; -} - -/** - Attempts to retrieve a performance measurement log entry from the performance measurement log. - It can also retrieve the log created by StartPerformanceMeasurement and EndPerformanceMeasurement, - and then assign the Identifier with 0. - - Attempts to retrieve the performance log entry specified by LogEntryKey. If LogEntryKey is - zero on entry, then an attempt is made to retrieve the first entry from the performance log, - and the key for the second entry in the log is returned. If the performance log is empty, - then no entry is retrieved and zero is returned. If LogEntryKey is not zero, then the performance - log entry associated with LogEntryKey is retrieved, and the key for the next entry in the log is - returned. If LogEntryKey is the key for the last entry in the log, then the last log entry is - retrieved and an implementation specific non-zero key value that specifies the end of the performance - log is returned. If LogEntryKey is equal this implementation specific non-zero key value, then no entry - is retrieved and zero is returned. In the cases where a performance log entry can be returned, - the log entry is returned in Handle, Token, Module, StartTimeStamp, EndTimeStamp and Identifier. - If LogEntryKey is not a valid log entry key for the performance measurement log, then ASSERT(). - If Handle is NULL, then ASSERT(). - If Token is NULL, then ASSERT(). - If Module is NULL, then ASSERT(). - If StartTimeStamp is NULL, then ASSERT(). - If EndTimeStamp is NULL, then ASSERT(). - If Identifier is NULL, then ASSERT(). - - @param LogEntryKey On entry, the key of the performance measurement log entry to retrieve. - 0, then the first performance measurement log entry is retrieved. - On exit, the key of the next performance log entry. - @param Handle Pointer to environment specific context used to identify the component - being measured. - @param Token Pointer to a Null-terminated ASCII string that identifies the component - being measured. - @param Module Pointer to a Null-terminated ASCII string that identifies the module - being measured. - @param StartTimeStamp Pointer to the 64-bit time stamp that was recorded when the measurement - was started. - @param EndTimeStamp Pointer to the 64-bit time stamp that was recorded when the measurement - was ended. - @param Identifier Pointer to the 32-bit identifier that was recorded. - - @return The key for the next performance log entry (in general case). - -**/ -UINTN -EFIAPI -GetPerformanceMeasurementEx ( - IN UINTN LogEntryKey, - OUT CONST VOID **Handle, - OUT CONST CHAR8 **Token, - OUT CONST CHAR8 **Module, - OUT UINT64 *StartTimeStamp, - OUT UINT64 *EndTimeStamp, - OUT UINT32 *Identifier - ) -{ - EFI_STATUS Status; - GAUGE_DATA_ENTRY_EX *GaugeData; - - GaugeData = NULL; - - ASSERT (Handle != NULL); - ASSERT (Token != NULL); - ASSERT (Module != NULL); - ASSERT (StartTimeStamp != NULL); - ASSERT (EndTimeStamp != NULL); - ASSERT (Identifier != NULL); - - Status = GetPerformanceProtocol (); - if (EFI_ERROR (Status)) { - return 0; - } - - if (mPerformanceEx != NULL) { - Status = mPerformanceEx->GetGaugeEx (LogEntryKey++, &GaugeData); - } else if (mPerformance != NULL) { - Status = mPerformance->GetGauge (LogEntryKey++, (GAUGE_DATA_ENTRY **) &GaugeData); - } else { - ASSERT (FALSE); - return 0; - } - - // - // Make sure that LogEntryKey is a valid log entry key, - // - ASSERT (Status != EFI_INVALID_PARAMETER); - - if (EFI_ERROR (Status)) { - // - // The LogEntryKey is the last entry (equals to the total entry number). - // - return 0; - } - - ASSERT (GaugeData != NULL); - - *Handle = (VOID *) (UINTN) GaugeData->Handle; - *Token = GaugeData->Token; - *Module = GaugeData->Module; - *StartTimeStamp = GaugeData->StartTimeStamp; - *EndTimeStamp = GaugeData->EndTimeStamp; - if (mPerformanceEx != NULL) { - *Identifier = GaugeData->Identifier; - } else { - *Identifier = 0; - } - - return LogEntryKey; -} - -/** - Creates a record for the beginning of a performance measurement. - - Creates a record that contains the Handle, Token, and Module. - If TimeStamp is not zero, then TimeStamp is added to the record as the start time. - If TimeStamp is zero, then this function reads the current time stamp - and adds that time stamp value to the record as the start time. - - @param Handle Pointer to environment specific context used - to identify the component being measured. - @param Token Pointer to a Null-terminated ASCII string - that identifies the component being measured. - @param Module Pointer to a Null-terminated ASCII string - that identifies the module being measured. - @param TimeStamp 64-bit time stamp. - - @retval RETURN_SUCCESS The start of the measurement was recorded. - @retval RETURN_OUT_OF_RESOURCES There are not enough resources to record the measurement. - -**/ -RETURN_STATUS -EFIAPI -StartPerformanceMeasurement ( - IN CONST VOID *Handle, OPTIONAL - IN CONST CHAR8 *Token, OPTIONAL - IN CONST CHAR8 *Module, OPTIONAL - IN UINT64 TimeStamp - ) -{ - return StartPerformanceMeasurementEx (Handle, Token, Module, TimeStamp, 0); -} - -/** - Fills in the end time of a performance measurement. - - Looks up the record that matches Handle, Token, and Module. - If the record can not be found then return RETURN_NOT_FOUND. - If the record is found and TimeStamp is not zero, - then TimeStamp is added to the record as the end time. - If the record is found and TimeStamp is zero, then this function reads - the current time stamp and adds that time stamp value to the record as the end time. - - @param Handle Pointer to environment specific context used - to identify the component being measured. - @param Token Pointer to a Null-terminated ASCII string - that identifies the component being measured. - @param Module Pointer to a Null-terminated ASCII string - that identifies the module being measured. - @param TimeStamp 64-bit time stamp. - - @retval RETURN_SUCCESS The end of the measurement was recorded. - @retval RETURN_NOT_FOUND The specified measurement record could not be found. - -**/ -RETURN_STATUS -EFIAPI -EndPerformanceMeasurement ( - IN CONST VOID *Handle, OPTIONAL - IN CONST CHAR8 *Token, OPTIONAL - IN CONST CHAR8 *Module, OPTIONAL - IN UINT64 TimeStamp - ) -{ - return EndPerformanceMeasurementEx (Handle, Token, Module, TimeStamp, 0); -} - -/** - Attempts to retrieve a performance measurement log entry from the performance measurement log. - It can also retrieve the log created by StartPerformanceMeasurementEx and EndPerformanceMeasurementEx, - and then eliminate the Identifier. - - Attempts to retrieve the performance log entry specified by LogEntryKey. If LogEntryKey is - zero on entry, then an attempt is made to retrieve the first entry from the performance log, - and the key for the second entry in the log is returned. If the performance log is empty, - then no entry is retrieved and zero is returned. If LogEntryKey is not zero, then the performance - log entry associated with LogEntryKey is retrieved, and the key for the next entry in the log is - returned. If LogEntryKey is the key for the last entry in the log, then the last log entry is - retrieved and an implementation specific non-zero key value that specifies the end of the performance - log is returned. If LogEntryKey is equal this implementation specific non-zero key value, then no entry - is retrieved and zero is returned. In the cases where a performance log entry can be returned, - the log entry is returned in Handle, Token, Module, StartTimeStamp, and EndTimeStamp. - If LogEntryKey is not a valid log entry key for the performance measurement log, then ASSERT(). - If Handle is NULL, then ASSERT(). - If Token is NULL, then ASSERT(). - If Module is NULL, then ASSERT(). - If StartTimeStamp is NULL, then ASSERT(). - If EndTimeStamp is NULL, then ASSERT(). - - @param LogEntryKey On entry, the key of the performance measurement log entry to retrieve. - 0, then the first performance measurement log entry is retrieved. - On exit, the key of the next performance log entry. - @param Handle Pointer to environment specific context used to identify the component - being measured. - @param Token Pointer to a Null-terminated ASCII string that identifies the component - being measured. - @param Module Pointer to a Null-terminated ASCII string that identifies the module - being measured. - @param StartTimeStamp Pointer to the 64-bit time stamp that was recorded when the measurement - was started. - @param EndTimeStamp Pointer to the 64-bit time stamp that was recorded when the measurement - was ended. - - @return The key for the next performance log entry (in general case). - -**/ -UINTN -EFIAPI -GetPerformanceMeasurement ( - IN UINTN LogEntryKey, - OUT CONST VOID **Handle, - OUT CONST CHAR8 **Token, - OUT CONST CHAR8 **Module, - OUT UINT64 *StartTimeStamp, - OUT UINT64 *EndTimeStamp - ) -{ - UINT32 Identifier; - return GetPerformanceMeasurementEx (LogEntryKey, Handle, Token, Module, StartTimeStamp, EndTimeStamp, &Identifier); -} - -/** - Returns TRUE if the performance measurement macros are enabled. - - This function returns TRUE if the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of - PcdPerformanceLibraryPropertyMask is set. Otherwise FALSE is returned. - - @retval TRUE The PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of - PcdPerformanceLibraryPropertyMask is set. - @retval FALSE The PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of - PcdPerformanceLibraryPropertyMask is clear. - -**/ -BOOLEAN -EFIAPI -PerformanceMeasurementEnabled ( - VOID - ) -{ - return mPerformanceMeasurementEnabled; -} diff --git a/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf b/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf deleted file mode 100644 index c3d01a1e51..0000000000 --- a/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.inf +++ /dev/null @@ -1,57 +0,0 @@ -## @file -# Performance library instance used in SMM phase. -# -# This library instance provides infrastructure for SMM drivers to log performance -# data. It consumes SMM PerformanceEx or Performance Protocol published by SmmCorePerformanceLib -# to log performance data. If both SMM PerformanceEx and Performance Protocol are not available, -# it does not log any performance information. -# -# Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.
-# 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. -# -## - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = SmmPerformanceLib - MODULE_UNI_FILE = SmmPerformanceLib.uni - FILE_GUID = 1EDD13E6-D0CD-4432-A692-FF65C9B4F039 - MODULE_TYPE = DXE_SMM_DRIVER - VERSION_STRING = 1.0 - LIBRARY_CLASS = PerformanceLib|DXE_SMM_DRIVER - - CONSTRUCTOR = SmmPerformanceLibConstructor - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 -# - -[Sources] - SmmPerformanceLib.c - - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - - -[LibraryClasses] - PcdLib - SmmServicesTableLib - DebugLib - BaseMemoryLib - -[Guids] - gSmmPerformanceProtocolGuid ## SOMETIMES_CONSUMES ## UNDEFINED # Locate protocol - gSmmPerformanceExProtocolGuid ## SOMETIMES_CONSUMES ## UNDEFINED # Locate protocol - -[Pcd] - gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask ## CONSUMES diff --git a/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.uni b/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.uni deleted file mode 100644 index aa804d269e..0000000000 Binary files a/MdeModulePkg/Library/SmmPerformanceLib/SmmPerformanceLib.uni and /dev/null differ -- cgit v1.2.3