]> git.proxmox.com Git - mirror_edk2.git/blame - UefiPayloadPkg/FvbRuntimeDxe/FvbSmmCommon.h
OvmfPkg: Implement MeasureHobList/MeasureFvImage
[mirror_edk2.git] / UefiPayloadPkg / FvbRuntimeDxe / FvbSmmCommon.h
CommitLineData
ae8acce8
GD
1/** @file\r
2 The common header file for SMM FVB module.\r
3\r
4Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>\r
5SPDX-License-Identifier: BSD-2-Clause-Patent\r
6\r
7**/\r
8\r
9#ifndef SMM_FVB_COMMON_H_\r
10#define SMM_FVB_COMMON_H_\r
11\r
12#include <Protocol/SmmFirmwareVolumeBlock.h>\r
13\r
e5efcf8b
MK
14#define EFI_FUNCTION_GET_ATTRIBUTES 1\r
15#define EFI_FUNCTION_SET_ATTRIBUTES 2\r
16#define EFI_FUNCTION_GET_PHYSICAL_ADDRESS 3\r
17#define EFI_FUNCTION_GET_BLOCK_SIZE 4\r
18#define EFI_FUNCTION_READ 5\r
19#define EFI_FUNCTION_WRITE 6\r
20#define EFI_FUNCTION_ERASE_BLOCKS 7\r
ae8acce8
GD
21\r
22typedef struct {\r
e5efcf8b
MK
23 UINTN Function;\r
24 EFI_STATUS ReturnStatus;\r
25 UINT8 Data[1];\r
ae8acce8
GD
26} SMM_FVB_COMMUNICATE_FUNCTION_HEADER;\r
27\r
ae8acce8
GD
28///\r
29/// Size of SMM communicate header, without including the payload.\r
30///\r
31#define SMM_COMMUNICATE_HEADER_SIZE (OFFSET_OF (EFI_SMM_COMMUNICATE_HEADER, Data))\r
32\r
33///\r
34/// Size of SMM FVB communicate function header, without including the payload.\r
35///\r
36#define SMM_FVB_COMMUNICATE_HEADER_SIZE (OFFSET_OF (SMM_FVB_COMMUNICATE_FUNCTION_HEADER, Data))\r
37\r
38typedef struct {\r
e5efcf8b
MK
39 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL *SmmFvb;\r
40 EFI_FVB_ATTRIBUTES_2 Attributes;\r
ae8acce8
GD
41} SMM_FVB_ATTRIBUTES_HEADER;\r
42\r
43typedef struct {\r
e5efcf8b
MK
44 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL *SmmFvb;\r
45 EFI_PHYSICAL_ADDRESS Address;\r
ae8acce8
GD
46} SMM_FVB_PHYSICAL_ADDRESS_HEADER;\r
47\r
48typedef struct {\r
e5efcf8b
MK
49 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL *SmmFvb;\r
50 EFI_LBA Lba;\r
51 UINTN BlockSize;\r
52 UINTN NumOfBlocks;\r
ae8acce8
GD
53} SMM_FVB_BLOCK_SIZE_HEADER;\r
54\r
55typedef struct {\r
e5efcf8b
MK
56 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL *SmmFvb;\r
57 EFI_LBA Lba;\r
58 UINTN Offset;\r
59 UINTN NumBytes;\r
ae8acce8
GD
60} SMM_FVB_READ_WRITE_HEADER;\r
61\r
62typedef struct {\r
e5efcf8b
MK
63 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *SmmFvb;\r
64 EFI_LBA StartLba;\r
65 UINTN NumOfLba;\r
ae8acce8
GD
66} SMM_FVB_BLOCKS_HEADER;\r
67\r
68#endif\r