3 The common header file for SMM FVB module and SMM FVB runtime Module.
5 Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved. <BR>
7 SPDX-License-Identifier: BSD-2-Clause-Patent
13 #ifndef _SMM_FVB_COMMON_H_
14 #define _SMM_FVB_COMMON_H_
16 #include <Protocol/SmmFirmwareVolumeBlock.h>
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
28 EFI_STATUS ReturnStatus
;
30 } SMM_FVB_COMMUNICATE_FUNCTION_HEADER
;
34 /// Size of SMM communicate header, without including the payload.
36 #define SMM_COMMUNICATE_HEADER_SIZE (OFFSET_OF (EFI_SMM_COMMUNICATE_HEADER, Data))
39 /// Size of SMM FVB communicate function header, without including the payload.
41 #define SMM_FVB_COMMUNICATE_HEADER_SIZE (OFFSET_OF (SMM_FVB_COMMUNICATE_FUNCTION_HEADER, Data))
44 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
45 EFI_FVB_ATTRIBUTES_2 Attributes
;
46 } SMM_FVB_ATTRIBUTES_HEADER
;
49 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
50 EFI_PHYSICAL_ADDRESS Address
;
51 } SMM_FVB_PHYSICAL_ADDRESS_HEADER
;
54 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
58 } SMM_FVB_BLOCK_SIZE_HEADER
;
61 EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
65 } SMM_FVB_READ_WRITE_HEADER
;
68 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*SmmFvb
;
71 } SMM_FVB_BLOCKS_HEADER
;