]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg: Define PPI to convey performance information from SEC phase to PEI.
authorxdu2 <xdu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Aug 2011 12:03:53 +0000 (12:03 +0000)
committerxdu2 <xdu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 25 Aug 2011 12:03:53 +0000 (12:03 +0000)
Signed-off-by: xdu2
Reviewed-by: lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12212 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Include/Ppi/SecPerformance.h [new file with mode: 0644]
MdeModulePkg/MdeModulePkg.dec

diff --git a/MdeModulePkg/Include/Ppi/SecPerformance.h b/MdeModulePkg/Include/Ppi/SecPerformance.h
new file mode 100644 (file)
index 0000000..f8e2cf1
--- /dev/null
@@ -0,0 +1,67 @@
+/** @file\r
+  Defines the interface to convey performance information from SEC phase to PEI.\r
+\r
+Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>\r
+\r
+This program and the accompanying materials\r
+are licensed and made available under the terms and conditions\r
+of the BSD License which accompanies this distribution.  The\r
+full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+#ifndef _PEI_SEC_PERFORMANCE_PPI_H_\r
+#define _PEI_SEC_PERFORMANCE_PPI_H_\r
+\r
+#define PEI_SEC_PERFORMANCE_PPI_GUID \\r
+  { \\r
+    0x0ecc666b, 0x4662, 0x47f9, {0x9d, 0xd5, 0xd0, 0x96, 0xff, 0x7d, 0xa4, 0x9e } \\r
+  }\r
+\r
+typedef struct _PEI_SEC_PERFORMANCE_PPI PEI_SEC_PERFORMANCE_PPI;\r
+\r
+///\r
+/// Performance data collected in SEC phase.\r
+///\r
+typedef struct {\r
+  UINT64         ResetEnd; ///< Timer value logged at the beginning of firmware image execution, in unit of nanosecond.\r
+} FIRMWARE_SEC_PERFORMANCE;\r
+\r
+/**\r
+  This interface conveys performance information out of the Security (SEC) phase into PEI.\r
+\r
+  This service is published by the SEC phase. The SEC phase handoff has an optional\r
+  EFI_PEI_PPI_DESCRIPTOR list as its final argument when control is passed from SEC into the\r
+  PEI Foundation. As such, if the platform supports collecting performance data in SEC,\r
+  this information is encapsulated into the data structure abstracted by this service.\r
+  This information is collected for the boot-strap processor (BSP) on IA-32.\r
+\r
+  @param[in]  PeiServices  The pointer to the PEI Services Table.\r
+  @param[in]  This         The pointer to this instance of the PEI_SEC_PERFORMANCE_PPI.\r
+  @param[out] Performance  The pointer to performance data collected in SEC phase.\r
+\r
+  @retval EFI_SUCCESS      The performance data was successfully returned.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *GET_SEC_PERFORMANCE) (\r
+  IN CONST EFI_PEI_SERVICES          **PeiServices,\r
+  IN       PEI_SEC_PERFORMANCE_PPI   *This,\r
+  OUT      FIRMWARE_SEC_PERFORMANCE  *Performance\r
+  );\r
+\r
+///\r
+/// This PPI provides function to get performance data collected in SEC phase.\r
+///\r
+struct _PEI_SEC_PERFORMANCE_PPI {\r
+  GET_SEC_PERFORMANCE         GetPerformance;\r
+};\r
+\r
+extern EFI_GUID gPeiSecPerformancePpiGuid;\r
+\r
+#endif\r
index d837d7833d8054b03f61bb5cec5aec9b6b48bc01..cb7155eaf9a044e47314eebd558f91e24b3268fd 100644 (file)
   ## Include/Ppi/Capsule.h\r
   gPeiCapsulePpiGuid             = { 0x3acf33ee, 0xd892, 0x40f4, { 0xa2, 0xfc, 0x38, 0x54, 0xd2, 0xe1, 0x32, 0x3d }}\r
 \r
+  ## Include/Ppi/SecPerformance.h\r
+  gPeiSecPerformancePpiGuid      = { 0x0ecc666b, 0x4662, 0x47f9, { 0x9d, 0xd5, 0xd0, 0x96, 0xff, 0x7d, 0xa4, 0x9e }}\r
+\r
   ## Include/Ppi/SmmCommunication.h\r
   gEfiPeiSmmCommunicationPpiGuid   =  { 0xae933e1c, 0xcc47, 0x4e38, { 0x8f, 0xe, 0xe2, 0xf6, 0x1d, 0x26, 0x5, 0xdf }}\r
 \r