TianoCore EDK2 master
Loading...
Searching...
No Matches
PerformanceLib.h File Reference

Go to the source code of this file.

Macros

#define PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED   0x00000001
 
#define PERF_EVENT_ID   0x00
 
#define MODULE_START_ID   0x01
 
#define MODULE_END_ID   0x02
 
#define MODULE_LOADIMAGE_START_ID   0x03
 
#define MODULE_LOADIMAGE_END_ID   0x04
 
#define MODULE_DB_START_ID   0x05
 
#define MODULE_DB_END_ID   0x06
 
#define MODULE_DB_SUPPORT_START_ID   0x07
 
#define MODULE_DB_SUPPORT_END_ID   0x08
 
#define MODULE_DB_STOP_START_ID   0x09
 
#define MODULE_DB_STOP_END_ID   0x0A
 
#define PERF_EVENTSIGNAL_START_ID   0x10
 
#define PERF_EVENTSIGNAL_END_ID   0x11
 
#define PERF_CALLBACK_START_ID   0x20
 
#define PERF_CALLBACK_END_ID   0x21
 
#define PERF_FUNCTION_START_ID   0x30
 
#define PERF_FUNCTION_END_ID   0x31
 
#define PERF_INMODULE_START_ID   0x40
 
#define PERF_INMODULE_END_ID   0x41
 
#define PERF_CROSSMODULE_START_ID   0x50
 
#define PERF_CROSSMODULE_END_ID   0x51
 
#define PERF_CORE_START_IMAGE   0x0002
 
#define PERF_CORE_LOAD_IMAGE   0x0004
 
#define PERF_CORE_DB_SUPPORT   0x0008
 
#define PERF_CORE_DB_START   0x0010
 
#define PERF_CORE_DB_STOP   0x0020
 
#define PERF_GENERAL_TYPE   0x0040
 
#define PERF_START_IMAGE_BEGIN(ModuleHandle)
 
#define PERF_START_IMAGE_END(ModuleHandle)
 
#define PERF_LOAD_IMAGE_BEGIN(ModuleHandle)
 
#define PERF_LOAD_IMAGE_END(ModuleHandle)
 
#define PERF_DRIVER_BINDING_SUPPORT_BEGIN(ModuleHandle, ControllerHandle)
 
#define PERF_DRIVER_BINDING_SUPPORT_END(ModuleHandle, ControllerHandle)
 
#define PERF_DRIVER_BINDING_START_BEGIN(ModuleHandle, ControllerHandle)
 
#define PERF_DRIVER_BINDING_START_END(ModuleHandle, ControllerHandle)
 
#define PERF_DRIVER_BINDING_STOP_BEGIN(ModuleHandle, ControllerHandle)
 
#define PERF_DRIVER_BINDING_STOP_END(ModuleHandle, ControllerHandle)
 
#define PERF_EVENT(EventString)
 
#define PERF_EVENT_SIGNAL_BEGIN(EventGuid)
 
#define PERF_EVENT_SIGNAL_END(EventGuid)
 
#define PERF_CALLBACK_BEGIN(TriggerGuid)
 
#define PERF_CALLBACK_END(TriggerGuid)
 
#define PERF_FUNCTION_BEGIN()
 
#define PERF_FUNCTION_END()
 
#define PERF_INMODULE_BEGIN(MeasurementString)
 
#define PERF_INMODULE_END(MeasurementString)
 
#define PERF_CROSSMODULE_BEGIN(MeasurementString)
 
#define PERF_CROSSMODULE_END(MeasurementString)
 
#define PERF_END(Handle, Token, Module, TimeStamp)
 
#define PERF_START(Handle, Token, Module, TimeStamp)
 
#define PERF_END_EX(Handle, Token, Module, TimeStamp, Identifier)
 
#define PERF_START_EX(Handle, Token, Module, TimeStamp, Identifier)
 
#define PERF_CODE_BEGIN()
 
#define PERF_CODE_END()
 
#define PERF_CODE(Expression)
 

Functions

RETURN_STATUS EFIAPI StartPerformanceMeasurement (IN CONST VOID *Handle OPTIONAL, IN CONST CHAR8 *Token OPTIONAL, IN CONST CHAR8 *Module OPTIONAL, IN UINT64 TimeStamp)
 
RETURN_STATUS EFIAPI EndPerformanceMeasurement (IN CONST VOID *Handle OPTIONAL, IN CONST CHAR8 *Token OPTIONAL, IN CONST CHAR8 *Module OPTIONAL, IN UINT64 TimeStamp)
 
UINTN EFIAPI GetPerformanceMeasurement (IN UINTN LogEntryKey, OUT CONST VOID **Handle, OUT CONST CHAR8 **Token, OUT CONST CHAR8 **Module, OUT UINT64 *StartTimeStamp, OUT UINT64 *EndTimeStamp)
 
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)
 
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)
 
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)
 
BOOLEAN EFIAPI PerformanceMeasurementEnabled (VOID)
 
BOOLEAN EFIAPI LogPerformanceMeasurementEnabled (IN CONST UINTN Type)
 
RETURN_STATUS EFIAPI LogPerformanceMeasurement (IN CONST VOID *CallerIdentifier OPTIONAL, IN CONST VOID *Guid OPTIONAL, IN CONST CHAR8 *String OPTIONAL, IN UINT64 Address OPTIONAL, IN UINT32 Identifier)
 

Detailed Description

Provides services to log the execution times and retrieve them later.

Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file PerformanceLib.h.

Macro Definition Documentation

◆ MODULE_DB_END_ID

#define MODULE_DB_END_ID   0x06

Definition at line 27 of file PerformanceLib.h.

◆ MODULE_DB_START_ID

#define MODULE_DB_START_ID   0x05

Definition at line 26 of file PerformanceLib.h.

◆ MODULE_DB_STOP_END_ID

#define MODULE_DB_STOP_END_ID   0x0A

Definition at line 31 of file PerformanceLib.h.

◆ MODULE_DB_STOP_START_ID

#define MODULE_DB_STOP_START_ID   0x09

Definition at line 30 of file PerformanceLib.h.

◆ MODULE_DB_SUPPORT_END_ID

#define MODULE_DB_SUPPORT_END_ID   0x08

Definition at line 29 of file PerformanceLib.h.

◆ MODULE_DB_SUPPORT_START_ID

#define MODULE_DB_SUPPORT_START_ID   0x07

Definition at line 28 of file PerformanceLib.h.

◆ MODULE_END_ID

#define MODULE_END_ID   0x02

Definition at line 23 of file PerformanceLib.h.

◆ MODULE_LOADIMAGE_END_ID

#define MODULE_LOADIMAGE_END_ID   0x04

Definition at line 25 of file PerformanceLib.h.

◆ MODULE_LOADIMAGE_START_ID

#define MODULE_LOADIMAGE_START_ID   0x03

Definition at line 24 of file PerformanceLib.h.

◆ MODULE_START_ID

#define MODULE_START_ID   0x01

Definition at line 22 of file PerformanceLib.h.

◆ PERF_CALLBACK_BEGIN

#define PERF_CALLBACK_BEGIN (   TriggerGuid)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __func__ , 0, PERF_CALLBACK_START_ID); \
} \
} while (FALSE)
#define FALSE
Definition: Base.h:307
BOOLEAN EFIAPI LogPerformanceMeasurementEnabled(IN CONST UINTN Type)

Begin Macro to measure the performance of a callback function in any module. The event guid which trigger the callback function will be passed with this macro.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 558 of file PerformanceLib.h.

◆ PERF_CALLBACK_END

#define PERF_CALLBACK_END (   TriggerGuid)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __func__ , 0, PERF_CALLBACK_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of a callback function in any module. The event guid which trigger the callback function will be passed with this macro.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 574 of file PerformanceLib.h.

◆ PERF_CALLBACK_END_ID

#define PERF_CALLBACK_END_ID   0x21

Definition at line 36 of file PerformanceLib.h.

◆ PERF_CALLBACK_START_ID

#define PERF_CALLBACK_START_ID   0x20

Definition at line 35 of file PerformanceLib.h.

◆ PERF_CODE

#define PERF_CODE (   Expression)
Value:
Expression \
PERF_CODE_END ()
#define PERF_CODE_BEGIN()

Macro that declares a section of performance measurement source code.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, then the source code specified by Expression is included in a module. Otherwise, the source specified by Expression is not included in a module.

Parameters
ExpressionPerformance measurement source code to include in a module.

Definition at line 764 of file PerformanceLib.h.

◆ PERF_CODE_BEGIN

#define PERF_CODE_BEGIN ( )
Value:
do { \
do { } while (FALSE)
BOOLEAN EFIAPI PerformanceMeasurementEnabled(VOID)

Macro that marks the beginning of performance measurement source code.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, then this macro marks the beginning of source code that is included in a module. Otherwise, the source lines between PERF_CODE_BEGIN() and PERF_CODE_END() are not included in a module.

Definition at line 737 of file PerformanceLib.h.

◆ PERF_CODE_END

#define PERF_CODE_END ( )
Value:
} \
} while (FALSE)

Macro that marks the end of performance measurement source code.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, then this macro marks the end of source code that is included in a module. Otherwise, the source lines between PERF_CODE_BEGIN() and PERF_CODE_END() are not included in a module.

Definition at line 750 of file PerformanceLib.h.

◆ PERF_CORE_DB_START

#define PERF_CORE_DB_START   0x0010

Definition at line 51 of file PerformanceLib.h.

◆ PERF_CORE_DB_STOP

#define PERF_CORE_DB_STOP   0x0020

Definition at line 52 of file PerformanceLib.h.

◆ PERF_CORE_DB_SUPPORT

#define PERF_CORE_DB_SUPPORT   0x0008

Definition at line 50 of file PerformanceLib.h.

◆ PERF_CORE_LOAD_IMAGE

#define PERF_CORE_LOAD_IMAGE   0x0004

Definition at line 49 of file PerformanceLib.h.

◆ PERF_CORE_START_IMAGE

#define PERF_CORE_START_IMAGE   0x0002

Definition at line 48 of file PerformanceLib.h.

◆ PERF_CROSSMODULE_BEGIN

#define PERF_CROSSMODULE_BEGIN (   MeasurementString)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_CROSSMODULE_START_ID); \
} \
} while (FALSE)
#define NULL
Definition: Base.h:319

Begin Macro to measure the performance of a behavior in different modules. Such as the performance of PEI phase, DXE phase, BDS phase.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 650 of file PerformanceLib.h.

◆ PERF_CROSSMODULE_END

#define PERF_CROSSMODULE_END (   MeasurementString)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_CROSSMODULE_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of a behavior in different modules. Such as the performance of PEI phase, DXE phase, BDS phase.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 666 of file PerformanceLib.h.

◆ PERF_CROSSMODULE_END_ID

#define PERF_CROSSMODULE_END_ID   0x51

Definition at line 42 of file PerformanceLib.h.

◆ PERF_CROSSMODULE_START_ID

#define PERF_CROSSMODULE_START_ID   0x50

Definition at line 41 of file PerformanceLib.h.

◆ PERF_DRIVER_BINDING_START_BEGIN

#define PERF_DRIVER_BINDING_START_BEGIN (   ModuleHandle,
  ControllerHandle 
)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_START)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_START_ID); \
} \
} while (FALSE)
UINT64 UINTN

Begin Macro to measure the performance of DriverBinding Start in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT4 (disable PERF_CORE_DB_START) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 449 of file PerformanceLib.h.

◆ PERF_DRIVER_BINDING_START_END

#define PERF_DRIVER_BINDING_START_END (   ModuleHandle,
  ControllerHandle 
)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_START)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of DriverBinding Start in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT4 (disable PERF_CORE_DB_START) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 464 of file PerformanceLib.h.

◆ PERF_DRIVER_BINDING_STOP_BEGIN

#define PERF_DRIVER_BINDING_STOP_BEGIN (   ModuleHandle,
  ControllerHandle 
)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_STOP)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_STOP_START_ID); \
} \
} while (FALSE)

Start Macro to measure the performance of DriverBinding Stop in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT5 (disable PERF_CORE_DB_STOP) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 479 of file PerformanceLib.h.

◆ PERF_DRIVER_BINDING_STOP_END

#define PERF_DRIVER_BINDING_STOP_END (   ModuleHandle,
  ControllerHandle 
)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_STOP)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_STOP_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of DriverBinding Stop in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT5 (disable PERF_CORE_DB_STOP) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 494 of file PerformanceLib.h.

◆ PERF_DRIVER_BINDING_SUPPORT_BEGIN

#define PERF_DRIVER_BINDING_SUPPORT_BEGIN (   ModuleHandle,
  ControllerHandle 
)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_SUPPORT)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_SUPPORT_START_ID); \
} \
} while (FALSE)

Start Macro to measure the performance of DriverBinding Support in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT3 (disable PERF_CORE_DB_SUPPORT) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 419 of file PerformanceLib.h.

◆ PERF_DRIVER_BINDING_SUPPORT_END

#define PERF_DRIVER_BINDING_SUPPORT_END (   ModuleHandle,
  ControllerHandle 
)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_SUPPORT)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_SUPPORT_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of DriverBinding Support in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT3 (disable PERF_CORE_DB_SUPPORT) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 434 of file PerformanceLib.h.

◆ PERF_END

#define PERF_END (   Handle,
  Token,
  Module,
  TimeStamp 
)
Value:
do { \
EndPerformanceMeasurement (Handle, Token, Module, TimeStamp); \
} \
} while (FALSE)

Macro that calls EndPerformanceMeasurement().

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, then EndPerformanceMeasurement() is called.

Definition at line 680 of file PerformanceLib.h.

◆ PERF_END_EX

#define PERF_END_EX (   Handle,
  Token,
  Module,
  TimeStamp,
  Identifier 
)
Value:
do { \
EndPerformanceMeasurementEx (Handle, Token, Module, TimeStamp, Identifier); \
} \
} while (FALSE)

Macro that calls EndPerformanceMeasurementEx().

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, then EndPerformanceMeasurementEx() is called.

Definition at line 708 of file PerformanceLib.h.

◆ PERF_EVENT

#define PERF_EVENT (   EventString)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, EventString , 0, PERF_EVENT_ID); \
} \
} while (FALSE)

Macro to measure the time from power-on to this macro execution. It can be used to log a meaningful thing which happens at a time point.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 510 of file PerformanceLib.h.

◆ PERF_EVENT_ID

#define PERF_EVENT_ID   0x00

Definition at line 20 of file PerformanceLib.h.

◆ PERF_EVENT_SIGNAL_BEGIN

#define PERF_EVENT_SIGNAL_BEGIN (   EventGuid)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __func__ , 0, PERF_EVENTSIGNAL_START_ID); \
} \
} while (FALSE)

Begin Macro to measure the performance of evnent signal behavior in any module. The event guid will be passed with this macro.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 526 of file PerformanceLib.h.

◆ PERF_EVENT_SIGNAL_END

#define PERF_EVENT_SIGNAL_END (   EventGuid)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __func__ , 0, PERF_EVENTSIGNAL_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of evnent signal behavior in any module. The event guid will be passed with this macro.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 542 of file PerformanceLib.h.

◆ PERF_EVENTSIGNAL_END_ID

#define PERF_EVENTSIGNAL_END_ID   0x11

Definition at line 34 of file PerformanceLib.h.

◆ PERF_EVENTSIGNAL_START_ID

#define PERF_EVENTSIGNAL_START_ID   0x10

Definition at line 33 of file PerformanceLib.h.

◆ PERF_FUNCTION_BEGIN

#define PERF_FUNCTION_BEGIN ( )
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __func__ , 0, PERF_FUNCTION_START_ID); \
} \
} while (FALSE)

Begin Macro to measure the performance of a general function in any module.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 589 of file PerformanceLib.h.

◆ PERF_FUNCTION_END

#define PERF_FUNCTION_END ( )
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __func__ , 0, PERF_FUNCTION_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of a general function in any module.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 604 of file PerformanceLib.h.

◆ PERF_FUNCTION_END_ID

#define PERF_FUNCTION_END_ID   0x31

Definition at line 38 of file PerformanceLib.h.

◆ PERF_FUNCTION_START_ID

#define PERF_FUNCTION_START_ID   0x30

Definition at line 37 of file PerformanceLib.h.

◆ PERF_GENERAL_TYPE

#define PERF_GENERAL_TYPE   0x0040

Definition at line 54 of file PerformanceLib.h.

◆ PERF_INMODULE_BEGIN

#define PERF_INMODULE_BEGIN (   MeasurementString)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_INMODULE_START_ID); \
} \
} while (FALSE)

Begin Macro to measure the performance of a behavior within one module.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 619 of file PerformanceLib.h.

◆ PERF_INMODULE_END

#define PERF_INMODULE_END (   MeasurementString)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_INMODULE_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of a behavior within one module.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT6 (disable PERF_GENERAL_TYPE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 634 of file PerformanceLib.h.

◆ PERF_INMODULE_END_ID

#define PERF_INMODULE_END_ID   0x41

Definition at line 40 of file PerformanceLib.h.

◆ PERF_INMODULE_START_ID

#define PERF_INMODULE_START_ID   0x40

Definition at line 39 of file PerformanceLib.h.

◆ PERF_LOAD_IMAGE_BEGIN

#define PERF_LOAD_IMAGE_BEGIN (   ModuleHandle)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_LOAD_IMAGE)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_LOADIMAGE_START_ID); \
} \
} while (FALSE)

Begin Macro to measure the performance of LoadImage in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT2 (disable PERF_CORE_LOAD_IMAGE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 389 of file PerformanceLib.h.

◆ PERF_LOAD_IMAGE_END

#define PERF_LOAD_IMAGE_END (   ModuleHandle)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_LOAD_IMAGE)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_LOADIMAGE_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of LoadImage in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT2 (disable PERF_CORE_LOAD_IMAGE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 404 of file PerformanceLib.h.

◆ PERF_START

#define PERF_START (   Handle,
  Token,
  Module,
  TimeStamp 
)
Value:
do { \
StartPerformanceMeasurement (Handle, Token, Module, TimeStamp); \
} \
} while (FALSE)

Macro that calls StartPerformanceMeasurement().

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, then StartPerformanceMeasurement() is called.

Definition at line 694 of file PerformanceLib.h.

◆ PERF_START_EX

#define PERF_START_EX (   Handle,
  Token,
  Module,
  TimeStamp,
  Identifier 
)
Value:
do { \
StartPerformanceMeasurementEx (Handle, Token, Module, TimeStamp, Identifier); \
} \
} while (FALSE)

Macro that calls StartPerformanceMeasurementEx().

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, then StartPerformanceMeasurementEx() is called.

Definition at line 722 of file PerformanceLib.h.

◆ PERF_START_IMAGE_BEGIN

#define PERF_START_IMAGE_BEGIN (   ModuleHandle)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_START_IMAGE)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_START_ID); \
} \
} while (FALSE)

Begin Macro to measure the performance of StartImage in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT1 (disable PERF_CORE_START_IMAGE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 359 of file PerformanceLib.h.

◆ PERF_START_IMAGE_END

#define PERF_START_IMAGE_END (   ModuleHandle)
Value:
do { \
if (LogPerformanceMeasurementEnabled (PERF_CORE_START_IMAGE)) { \
LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_END_ID); \
} \
} while (FALSE)

End Macro to measure the performance of StartImage in core.

If the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set, and the BIT1 (disable PERF_CORE_START_IMAGE) of PcdPerformanceLibraryPropertyMask is not set, then LogPerformanceMeasurement() is called.

Definition at line 374 of file PerformanceLib.h.

◆ PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED

#define PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED   0x00000001

Performance library propery mask bits

Definition at line 15 of file PerformanceLib.h.

Function Documentation

◆ EndPerformanceMeasurement()

RETURN_STATUS EFIAPI EndPerformanceMeasurement ( IN CONST VOID *Handle  OPTIONAL,
IN CONST CHAR8 *Token  OPTIONAL,
IN CONST CHAR8 *Module  OPTIONAL,
IN UINT64  TimeStamp 
)

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.
RETURN_DEVICE_ERRORA device error reading the time stamp.

Searches the performance measurement log from the beginning of the log for the first matching record that contains a zero end time and fills in a valid end time.

Searches the performance measurement log from the beginning of the log for the first record that matches Handle, Token, and Module and has an end time value of zero. If the record can not be found then return RETURN_NOT_FOUND. If the record is found and TimeStamp is not zero, then the end time in the record is filled in with the value specified by TimeStamp. If the record is found and TimeStamp is zero, then the end time in the matching record is filled in with the current time stamp value.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.

Creates a record for the end of a performance measurement.

If the TimeStamp is not zero or one, then TimeStamp is added to the record as the end time. If the TimeStamp is zero, then this function reads the current time stamp and adds that time stamp value to the record as the end time. If the TimeStamp is one, then this function reads 0 as the end time.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.

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.

Parameters
HandleThe pointer to environment specific context used to identify the component being measured.
TokenThe pointer to a Null-terminated ASCII string that identifies the component being measured.
ModuleThe pointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.
RETURN_DEVICE_ERRORA device error reading the time stamp.

Definition at line 1825 of file DxeCorePerformanceLib.c.

◆ EndPerformanceMeasurementEx()

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 
)

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the found record is same as the one found by EndPerformanceMeasurement.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.
RETURN_DEVICE_ERRORA device error reading the time stamp.

Searches the performance measurement log from the beginning of the log for the first matching record that contains a zero end time and fills in a valid end time.

Searches the performance measurement log from the beginning of the log for the first record that matches Handle, Token, Module and Identifier and has an end time value of zero. If the record can not be found then return RETURN_NOT_FOUND. If the record is found and TimeStamp is not zero, then the end time in the record is filled in with the value specified by TimeStamp. If the record is found and TimeStamp is zero, then the end time in the matching record is filled in with the current time stamp value.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the found record is same as the one found by EndPerformanceMeasurement.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the found record is same as the one found by EndPerformanceMeasurement.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.

Creates a record for the end of a performance measurement.

If the TimeStamp is not zero or one, then TimeStamp is added to the record as the end time. If the TimeStamp is zero, then this function reads the current time stamp and adds that time stamp value to the record as the end time. If the TimeStamp is one, then this function reads 0 as the end time.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the found record is same as the one found by EndPerformanceMeasurement.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the found record is same as the one found by EndPerformanceMeasurement.
Return values
RETURN_SUCCESSThe end of the measurement was recorded.
RETURN_NOT_FOUNDThe specified measurement record could not be found.
RETURN_DEVICE_ERRORA device error reading the time stamp.

Definition at line 1684 of file DxeCorePerformanceLib.c.

◆ GetPerformanceMeasurement()

UINTN EFIAPI GetPerformanceMeasurement ( IN UINTN  LogEntryKey,
OUT CONST VOID **  Handle,
OUT CONST CHAR8 **  Token,
OUT CONST CHAR8 **  Module,
OUT UINT64 *  StartTimeStamp,
OUT UINT64 *  EndTimeStamp 
)

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().

Parameters
LogEntryKeyOn 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 lof entry entry.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
Returns
The key for the next performance log entry (in general case).

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.

!!! Not support!!!

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().

Parameters
LogEntryKeyOn 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.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
Returns
The key for the next performance log entry (in general case).

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().

Parameters
LogEntryKeyOn 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.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
Returns
The key for the next performance log entry (in general case).

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().

NOT Support yet.

Parameters
LogEntryKeyOn 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 of entry entry.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
Returns
The key for the next performance log entry (in general case).

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.

!!! Not Support!!!

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().

Parameters
LogEntryKeyOn 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.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
Returns
The key for the next performance log entry (in general case).

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().

Parameters
LogEntryKeyOn 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 lof entry entry.
HandleThe pointer to environment specific context used to identify the component being measured.
TokenThe pointer to a Null-terminated ASCII string that identifies the component being measured.
ModuleThe pointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampThe pointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampThe pointer to the 64-bit time stamp that was recorded when the measurement was ended.
Returns
The key for the next performance log entry (in general case).

Definition at line 1878 of file DxeCorePerformanceLib.c.

◆ GetPerformanceMeasurementEx()

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 
)

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().

Parameters
LogEntryKeyOn 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 of entry entry.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
IdentifierPointer to the 32-bit identifier that was recorded.
Returns
The key for the next performance log entry (in general case).

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.

!!! Not support!!!

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().

Parameters
LogEntryKeyOn 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.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
IdentifierPointer to the 32-bit identifier that was recorded when the measurement was ended.
Returns
The key for the next performance log entry (in general case).

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().

Parameters
LogEntryKeyOn 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.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
IdentifierPointer to the 32-bit identifier that was recorded.
Returns
The key for the next performance log entry (in general case).

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().

!!!NOT Support yet!!!

Parameters
LogEntryKeyOn 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 of entry entry.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
IdentifierPointer to the 32-bit identifier that was recorded.
Returns
The key for the next performance log entry (in general case).

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.

!!! Not Support!!!

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().

Parameters
LogEntryKeyOn 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.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
IdentifierPointer to the 32-bit identifier that was recorded.
Returns
The key for the next performance log entry (in general case).

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().

Parameters
LogEntryKeyOn 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 lof entry entry.
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
StartTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was started.
EndTimeStampPointer to the 64-bit time stamp that was recorded when the measurement was ended.
IdentifierPointer to the 32-bit identifier that was recorded.
Returns
The key for the next performance log entry (in general case).

Definition at line 1751 of file DxeCorePerformanceLib.c.

◆ LogPerformanceMeasurement()

RETURN_STATUS EFIAPI LogPerformanceMeasurement ( IN CONST VOID *CallerIdentifier  OPTIONAL,
IN CONST VOID *Guid  OPTIONAL,
IN CONST CHAR8 *String  OPTIONAL,
IN UINT64 Address  OPTIONAL,
IN UINT32  Identifier 
)

Create performance record with event description.

Parameters
CallerIdentifier- Image handle or pointer to caller ID GUID
Guid- Pointer to a GUID. Used for event signal perf and callback perf to cache the event guid.
String- Pointer to a string describing the measurement
Address- Pointer to a location in memory relevant to the measurement.
Identifier- Performance identifier describing the type of measurement.
Return values
RETURN_SUCCESS- Successfully created performance record
RETURN_OUT_OF_RESOURCES- Ran out of space to store the records
RETURN_INVALID_PARAMETER- Invalid parameter passed to function - NULL pointer or invalid Identifier.

Create performance record with event description and a timestamp.

Parameters
CallerIdentifier- Image handle or pointer to caller ID GUID
Guid- Pointer to a GUID
String- Pointer to a string describing the measurement
Address- Pointer to a location in memory relevant to the measurement
Identifier- Performance identifier describing the type of measurement
Return values
RETURN_SUCCESS- Successfully created performance record
RETURN_OUT_OF_RESOURCES- Ran out of space to store the records
RETURN_INVALID_PARAMETER- Invalid parameter passed to function - NULL pointer or invalid PerfId

Definition at line 317 of file PerformanceLib.c.

◆ LogPerformanceMeasurementEnabled()

BOOLEAN EFIAPI LogPerformanceMeasurementEnabled ( IN CONST UINTN  Type)

Check whether the specified performance measurement can be logged.

This function returns TRUE when the PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set and the Type disable bit in PcdPerformanceLibraryPropertyMask is not set.

Parameters
Type- Type of the performance measurement entry.
Return values
TRUEThe performance measurement can be logged.
FALSEThe performance measurement can NOT be logged.

Definition at line 1953 of file DxeCorePerformanceLib.c.

◆ PerformanceMeasurementEnabled()

BOOLEAN EFIAPI PerformanceMeasurementEnabled ( VOID  )

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.

Return values
TRUEThe PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is set.
FALSEThe PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED bit of PcdPerformanceLibraryPropertyMask is clear.

Definition at line 1904 of file DxeCorePerformanceLib.c.

◆ StartPerformanceMeasurement()

RETURN_STATUS EFIAPI StartPerformanceMeasurement ( IN CONST VOID *Handle  OPTIONAL,
IN CONST CHAR8 *Token  OPTIONAL,
IN CONST CHAR8 *Module  OPTIONAL,
IN UINT64  TimeStamp 
)

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.
RETURN_DEVICE_ERRORA device error reading the time stamp.

Adds a record at the end of the performance measurement log that records the start time of a performance measurement.

Adds a record to the end of the performance measurement log that contains the Handle, Token, and Module. The end time of the new record must be set to zero. If TimeStamp is not zero, then TimeStamp is used to fill in the start time in the record. If TimeStamp is zero, the start time in the record is filled in with the value read from the current time stamp.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.

Creates a record for the beginning of a performance measurement.

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.

If TimeStamp is one, then this function reads 0 as the start time.

If TimeStamp is other value, then TimeStamp is added to the record as the start time.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.

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.

Parameters
HandleThe pointer to environment specific context used to identify the component being measured.
TokenThe pointer to a Null-terminated ASCII string that identifies the component being measured.
ModuleThe pointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.
RETURN_DEVICE_ERRORA device error reading the time stamp.

Definition at line 1789 of file DxeCorePerformanceLib.c.

◆ StartPerformanceMeasurementEx()

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 
)

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the created record is same as the one created by StartPerformanceMeasurement.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.
RETURN_DEVICE_ERRORA device error reading the time stamp.

Adds a record at the end of the performance measurement log that records the start time of a performance measurement.

Adds a record to the end of the performance measurement log that contains the Handle, Token, Module and Identifier. The end time of the new record must be set to zero. If TimeStamp is not zero, then TimeStamp is used to fill in the start time in the record. If TimeStamp is zero, the start time in the record is filled in with the value read from the current time stamp.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the created record is same as the one created by StartPerformanceMeasurement.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.

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.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the created record is same as the one created by StartPerformanceMeasurement.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.

Creates a record for the beginning of a performance measurement.

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.

If TimeStamp is one, then this function reads 0 as the start time.

If TimeStamp is other value, then TimeStamp is added to the record as the start time.

Parameters
HandlePointer to environment specific context used to identify the component being measured.
TokenPointer to a Null-terminated ASCII string that identifies the component being measured.
ModulePointer to a Null-terminated ASCII string that identifies the module being measured.
TimeStamp64-bit time stamp.
Identifier32-bit identifier. If the value is 0, the created record is same as the one created by StartPerformanceMeasurement.
Return values
RETURN_SUCCESSThe start of the measurement was recorded.
RETURN_OUT_OF_RESOURCESThere are not enough resources to record the measurement.

Definition at line 1635 of file DxeCorePerformanceLib.c.