1 | /** @file
|
---|
2 | Defines the interface to convey performance information from SEC phase to PEI.
|
---|
3 |
|
---|
4 | Copyright (c) 2011, Intel Corporation. All rights reserved.<BR>
|
---|
5 |
|
---|
6 | SPDX-License-Identifier: BSD-2-Clause-Patent
|
---|
7 |
|
---|
8 | **/
|
---|
9 |
|
---|
10 | #ifndef _PEI_SEC_PERFORMANCE_PPI_H_
|
---|
11 | #define _PEI_SEC_PERFORMANCE_PPI_H_
|
---|
12 |
|
---|
13 | #define PEI_SEC_PERFORMANCE_PPI_GUID \
|
---|
14 | { \
|
---|
15 | 0x0ecc666b, 0x4662, 0x47f9, {0x9d, 0xd5, 0xd0, 0x96, 0xff, 0x7d, 0xa4, 0x9e } \
|
---|
16 | }
|
---|
17 |
|
---|
18 | typedef struct _PEI_SEC_PERFORMANCE_PPI PEI_SEC_PERFORMANCE_PPI;
|
---|
19 |
|
---|
20 | ///
|
---|
21 | /// Performance data collected in SEC phase.
|
---|
22 | ///
|
---|
23 | typedef struct {
|
---|
24 | UINT64 ResetEnd; ///< Timer value logged at the beginning of firmware image execution, in unit of nanosecond.
|
---|
25 | } FIRMWARE_SEC_PERFORMANCE;
|
---|
26 |
|
---|
27 | /**
|
---|
28 | This interface conveys performance information out of the Security (SEC) phase into PEI.
|
---|
29 |
|
---|
30 | This service is published by the SEC phase. The SEC phase handoff has an optional
|
---|
31 | EFI_PEI_PPI_DESCRIPTOR list as its final argument when control is passed from SEC into the
|
---|
32 | PEI Foundation. As such, if the platform supports collecting performance data in SEC,
|
---|
33 | this information is encapsulated into the data structure abstracted by this service.
|
---|
34 | This information is collected for the boot-strap processor (BSP) on IA-32.
|
---|
35 |
|
---|
36 | @param[in] PeiServices The pointer to the PEI Services Table.
|
---|
37 | @param[in] This The pointer to this instance of the PEI_SEC_PERFORMANCE_PPI.
|
---|
38 | @param[out] Performance The pointer to performance data collected in SEC phase.
|
---|
39 |
|
---|
40 | @retval EFI_SUCCESS The performance data was successfully returned.
|
---|
41 |
|
---|
42 | **/
|
---|
43 | typedef
|
---|
44 | EFI_STATUS
|
---|
45 | (EFIAPI *GET_SEC_PERFORMANCE)(
|
---|
46 | IN CONST EFI_PEI_SERVICES **PeiServices,
|
---|
47 | IN PEI_SEC_PERFORMANCE_PPI *This,
|
---|
48 | OUT FIRMWARE_SEC_PERFORMANCE *Performance
|
---|
49 | );
|
---|
50 |
|
---|
51 | ///
|
---|
52 | /// This PPI provides function to get performance data collected in SEC phase.
|
---|
53 | ///
|
---|
54 | struct _PEI_SEC_PERFORMANCE_PPI {
|
---|
55 | GET_SEC_PERFORMANCE GetPerformance;
|
---|
56 | };
|
---|
57 |
|
---|
58 | extern EFI_GUID gPeiSecPerformancePpiGuid;
|
---|
59 |
|
---|
60 | #endif
|
---|