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