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