15#ifndef __PERFORMANCE_LIB_H__
16#define __PERFORMANCE_LIB_H__
21#define PERFORMANCE_LIBRARY_PROPERTY_MEASUREMENT_ENABLED 0x00000001
26#define PERF_EVENT_ID 0x00
28#define MODULE_START_ID 0x01
29#define MODULE_END_ID 0x02
30#define MODULE_LOADIMAGE_START_ID 0x03
31#define MODULE_LOADIMAGE_END_ID 0x04
32#define MODULE_DB_START_ID 0x05
33#define MODULE_DB_END_ID 0x06
34#define MODULE_DB_SUPPORT_START_ID 0x07
35#define MODULE_DB_SUPPORT_END_ID 0x08
36#define MODULE_DB_STOP_START_ID 0x09
37#define MODULE_DB_STOP_END_ID 0x0A
39#define PERF_EVENTSIGNAL_START_ID 0x10
40#define PERF_EVENTSIGNAL_END_ID 0x11
41#define PERF_CALLBACK_START_ID 0x20
42#define PERF_CALLBACK_END_ID 0x21
43#define PERF_FUNCTION_START_ID 0x30
44#define PERF_FUNCTION_END_ID 0x31
45#define PERF_INMODULE_START_ID 0x40
46#define PERF_INMODULE_END_ID 0x41
47#define PERF_CROSSMODULE_START_ID 0x50
48#define PERF_CROSSMODULE_END_ID 0x51
54#define PERF_CORE_START_IMAGE 0x0002
55#define PERF_CORE_LOAD_IMAGE 0x0004
56#define PERF_CORE_DB_SUPPORT 0x0008
57#define PERF_CORE_DB_START 0x0010
58#define PERF_CORE_DB_STOP 0x0020
60#define PERF_GENERAL_TYPE 0x0040
366#define PERF_START_IMAGE_BEGIN(ModuleHandle) \
368 if (LogPerformanceMeasurementEnabled (PERF_CORE_START_IMAGE)) { \
369 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_START_ID); \
381#define PERF_START_IMAGE_END(ModuleHandle) \
383 if (LogPerformanceMeasurementEnabled (PERF_CORE_START_IMAGE)) { \
384 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_END_ID); \
396#define PERF_LOAD_IMAGE_BEGIN(ModuleHandle) \
398 if (LogPerformanceMeasurementEnabled (PERF_CORE_LOAD_IMAGE)) { \
399 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_LOADIMAGE_START_ID); \
411#define PERF_LOAD_IMAGE_END(ModuleHandle) \
413 if (LogPerformanceMeasurementEnabled (PERF_CORE_LOAD_IMAGE)) { \
414 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, 0, MODULE_LOADIMAGE_END_ID); \
426#define PERF_DRIVER_BINDING_SUPPORT_BEGIN(ModuleHandle, ControllerHandle) \
428 if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_SUPPORT)) { \
429 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_SUPPORT_START_ID); \
441#define PERF_DRIVER_BINDING_SUPPORT_END(ModuleHandle, ControllerHandle) \
443 if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_SUPPORT)) { \
444 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_SUPPORT_END_ID); \
456#define PERF_DRIVER_BINDING_START_BEGIN(ModuleHandle, ControllerHandle) \
458 if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_START)) { \
459 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_START_ID); \
471#define PERF_DRIVER_BINDING_START_END(ModuleHandle, ControllerHandle) \
473 if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_START)) { \
474 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_END_ID); \
486#define PERF_DRIVER_BINDING_STOP_BEGIN(ModuleHandle, ControllerHandle) \
488 if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_STOP)) { \
489 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_STOP_START_ID); \
501#define PERF_DRIVER_BINDING_STOP_END(ModuleHandle, ControllerHandle) \
503 if (LogPerformanceMeasurementEnabled (PERF_CORE_DB_STOP)) { \
504 LogPerformanceMeasurement (ModuleHandle, NULL, NULL, (UINT64)(UINTN)ControllerHandle, MODULE_DB_STOP_END_ID); \
517#define PERF_EVENT(EventString) \
519 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
520 LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, EventString , 0, PERF_EVENT_ID); \
533#define PERF_EVENT_SIGNAL_BEGIN(EventGuid) \
535 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
536 LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __FUNCTION__ , 0, PERF_EVENTSIGNAL_START_ID); \
549#define PERF_EVENT_SIGNAL_END(EventGuid) \
551 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
552 LogPerformanceMeasurement (&gEfiCallerIdGuid, EventGuid, __FUNCTION__ , 0, PERF_EVENTSIGNAL_END_ID); \
565#define PERF_CALLBACK_BEGIN(TriggerGuid) \
567 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
568 LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __FUNCTION__ , 0, PERF_CALLBACK_START_ID); \
581#define PERF_CALLBACK_END(TriggerGuid) \
583 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
584 LogPerformanceMeasurement (&gEfiCallerIdGuid, TriggerGuid, __FUNCTION__ , 0, PERF_CALLBACK_END_ID); \
596#define PERF_FUNCTION_BEGIN() \
598 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
599 LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __FUNCTION__ , 0, PERF_FUNCTION_START_ID); \
611#define PERF_FUNCTION_END() \
613 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
614 LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, __FUNCTION__ , 0, PERF_FUNCTION_END_ID); \
626#define PERF_INMODULE_BEGIN(MeasurementString) \
628 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
629 LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_INMODULE_START_ID); \
641#define PERF_INMODULE_END(MeasurementString) \
643 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
644 LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_INMODULE_END_ID); \
657#define PERF_CROSSMODULE_BEGIN(MeasurementString) \
659 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
660 LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_CROSSMODULE_START_ID); \
673#define PERF_CROSSMODULE_END(MeasurementString) \
675 if (LogPerformanceMeasurementEnabled (PERF_GENERAL_TYPE)) { \
676 LogPerformanceMeasurement (&gEfiCallerIdGuid, NULL, MeasurementString, 0, PERF_CROSSMODULE_END_ID); \
687#define PERF_END(Handle, Token, Module, TimeStamp) \
689 if (PerformanceMeasurementEnabled ()) { \
690 EndPerformanceMeasurement (Handle, Token, Module, TimeStamp); \
701#define PERF_START(Handle, Token, Module, TimeStamp) \
703 if (PerformanceMeasurementEnabled ()) { \
704 StartPerformanceMeasurement (Handle, Token, Module, TimeStamp); \
715#define PERF_END_EX(Handle, Token, Module, TimeStamp, Identifier) \
717 if (PerformanceMeasurementEnabled ()) { \
718 EndPerformanceMeasurementEx (Handle, Token, Module, TimeStamp, Identifier); \
729#define PERF_START_EX(Handle, Token, Module, TimeStamp, Identifier) \
731 if (PerformanceMeasurementEnabled ()) { \
732 StartPerformanceMeasurementEx (Handle, Token, Module, TimeStamp, Identifier); \
744#define PERF_CODE_BEGIN() do { if (PerformanceMeasurementEnabled ()) { UINT8 __PerformanceCodeLocal
754#define PERF_CODE_END() __PerformanceCodeLocal = 0; __PerformanceCodeLocal++; } } while (FALSE)
766#define PERF_CODE(Expression) \
767 PERF_CODE_BEGIN (); \
char CHAR8
Definition ProcessorBind.h:109
UINT64 UINTN
Definition ProcessorBind.h:118
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define CONST
Definition Base.h:327
#define IN
Definition Base.h:347
UINTN RETURN_STATUS
Definition Base.h:965
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
#define VOID
Definition acefi.h:190
ACPI_PHYSICAL_ADDRESS Address
Definition acpixf.h:637
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn BOOLEAN Physical UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE ACPI_HANDLE ACPI_HANDLE *OutHandle ACPI_HANDLE *OutHandle void *Context void *Context ACPI_EVENT_HANDLER Handler UINT32 UINT32 Type
Definition acpixf.h:894
unsigned char BOOLEAN
Definition actypes.h:235
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239