2 The common header file for SMM FVB module.
4 Copyright (c) 2014 - 2021, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
9 #ifndef SMM_FVB_COMMON_H_
10 #define SMM_FVB_COMMON_H_
12 #include <Protocol/SmmFirmwareVolumeBlock.h>
14 #define EFI_FUNCTION_GET_ATTRIBUTES 1
15 #define EFI_FUNCTION_SET_ATTRIBUTES 2
16 #define EFI_FUNCTION_GET_PHYSICAL_ADDRESS 3
17 #define EFI_FUNCTION_GET_BLOCK_SIZE 4
18 #define EFI_FUNCTION_READ 5
19 #define EFI_FUNCTION_WRITE 6
20 #define EFI_FUNCTION_ERASE_BLOCKS 7
24 EFI_STATUS ReturnStatus
;
26 } SMM_FVB_COMMUNICATE_FUNCTION_HEADER
;
30 /// Size of SMM communicate header, without including the payload.
32 #define SMM_COMMUNICATE_HEADER_SIZE (OFFSET_OF (EFI_SMM_COMMUNICATE_HEADER, Data))
35 /// Size of SMM FVB communicate function header, without including the payload.
37 #define SMM_FVB_COMMUNICATE_HEADER_SIZE (OFFSET_OF (SMM_FVB_COMMUNICATE_FUNCTION_HEADER, Data))
40 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
41 EFI_FVB_ATTRIBUTES_2 Attributes
;
42 } SMM_FVB_ATTRIBUTES_HEADER
;
45 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
46 EFI_PHYSICAL_ADDRESS Address
;
47 } SMM_FVB_PHYSICAL_ADDRESS_HEADER
;
50 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
54 } SMM_FVB_BLOCK_SIZE_HEADER
;
57 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
61 } SMM_FVB_READ_WRITE_HEADER
;
64 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
67 } SMM_FVB_BLOCKS_HEADER
;