]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Library/SmmCorePerformanceLib/SmmCorePerformanceLibInternal.h
MdeModulePkg: Clean up source files
[mirror_edk2.git] / MdeModulePkg / Library / SmmCorePerformanceLib / SmmCorePerformanceLibInternal.h
CommitLineData
d042c6e8 1/** @file\r
2 Master header files for SmmCorePerformanceLib instance.\r
3\r
f0da4d7d 4 This header file holds the prototypes of the SMM Performance and PerformanceEx Protocol published by this\r
d042c6e8 5 library instance at its constructor.\r
6\r
2001f84e 7Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>\r
d042c6e8 8This program and the accompanying materials\r
9are licensed and made available under the terms and conditions of the BSD License\r
10which accompanies this distribution. The full text of the license may be found at\r
11http://opensource.org/licenses/bsd-license.php\r
12\r
13THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
14WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
15\r
16**/\r
d1102dba 17\r
d042c6e8 18#ifndef _SMM_CORE_PERFORMANCE_LIB_INTERNAL_H_\r
19#define _SMM_CORE_PERFORMANCE_LIB_INTERNAL_H_\r
20\r
21\r
22#include <Guid/Performance.h>\r
137fb13d 23#include <Guid/PerformanceMeasurement.h>\r
2001f84e
DB
24#include <Guid/ExtendedFirmwarePerformance.h>\r
25#include <Guid/FirmwarePerformance.h>\r
26#include <Guid/ZeroGuid.h>\r
27#include <Guid/EventGroup.h>\r
d042c6e8 28\r
29#include <Library/SmmServicesTableLib.h>\r
30#include <Library/DebugLib.h>\r
31#include <Library/PerformanceLib.h>\r
32#include <Library/BaseLib.h>\r
33#include <Library/BaseMemoryLib.h>\r
34#include <Library/TimerLib.h>\r
35#include <Library/PcdLib.h>\r
d1102dba 36#include <Library/UefiLib.h>\r
d042c6e8 37#include <Library/UefiBootServicesTableLib.h>\r
38#include <Library/MemoryAllocationLib.h>\r
39#include <Library/SynchronizationLib.h>\r
842b1242 40#include <Library/SmmMemLib.h>\r
2001f84e
DB
41#include <Library/ReportStatusCodeLib.h>\r
42#include <Library/DxeServicesLib.h>\r
43#include <Library/PeCoffGetEntryPointLib.h>\r
d042c6e8 44\r
45#include <Protocol/SmmBase2.h>\r
2001f84e
DB
46#include <Protocol/LoadedImage.h>\r
47#include <Protocol/DevicePathToText.h>\r
d042c6e8 48\r
49//\r
137fb13d 50// Interface declarations for SMM PerformanceMeasurement Protocol.\r
f0da4d7d
SZ
51//\r
52/**\r
137fb13d
BD
53 Create performance record with event description and a timestamp.\r
54\r
55 @param CallerIdentifier - Image handle or pointer to caller ID GUID.\r
56 @param Guid - Pointer to a GUID.\r
57 @param String - Pointer to a string describing the measurement.\r
58 @param TimeStamp - 64-bit time stamp.\r
59 @param Address - Pointer to a location in memory relevant to the measurement.\r
60 @param Identifier - Performance identifier describing the type of measurement.\r
61 @param Attribute - The attribute of the measurement. According to attribute can create a start\r
62 record for PERF_START/PERF_START_EX, or a end record for PERF_END/PERF_END_EX,\r
63 or a general record for other Perf macros.\r
64\r
65 @retval EFI_SUCCESS - Successfully created performance record.\r
66 @retval EFI_OUT_OF_RESOURCES - Ran out of space to store the records.\r
67 @retval EFI_INVALID_PARAMETER - Invalid parameter passed to function - NULL\r
68 pointer or invalid PerfId.\r
f0da4d7d
SZ
69**/\r
70EFI_STATUS\r
71EFIAPI\r
137fb13d
BD
72CreatePerformanceMeasurement(\r
73 IN CONST VOID *CallerIdentifier, OPTIONAL\r
74 IN CONST VOID *Guid, OPTIONAL\r
75 IN CONST CHAR8 *String, OPTIONAL\r
76 IN UINT64 TimeStamp, OPTIONAL\r
77 IN UINT64 Address, OPTIONAL\r
78 IN UINT32 Identifier,\r
79 IN PERF_MEASUREMENT_ATTRIBUTE Attribute\r
f0da4d7d
SZ
80 );\r
81\r
d042c6e8 82#endif\r