\r
Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
\r
- This program and the accompanying materials are licensed and made available\r
- under the terms and conditions of the BSD License which accompanies this\r
- distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+ SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
Module Name:\r
\r
#ifndef _FW_BLOCK_SERVICE_H\r
#define _FW_BLOCK_SERVICE_H\r
\r
-//\r
-// BugBug: Add documentation here for data structure!!!!\r
-//\r
-#define FVB_PHYSICAL 0\r
-#define FVB_VIRTUAL 1\r
-\r
typedef struct {\r
- UINTN FvBase[2];\r
+ UINTN FvBase;\r
UINTN NumOfBlocks;\r
EFI_FIRMWARE_VOLUME_HEADER VolumeHeader;\r
} EFI_FW_VOL_INSTANCE;\r
\r
typedef struct {\r
UINT32 NumFv;\r
- EFI_FW_VOL_INSTANCE *FvInstance[2];\r
+ EFI_FW_VOL_INSTANCE *FvInstance;\r
} ESAL_FWB_GLOBAL;\r
\r
+extern ESAL_FWB_GLOBAL *mFvbModuleGlobal;\r
+\r
//\r
// Fvb Protocol instance data\r
//\r
FvbSetVolumeAttributes (\r
IN UINTN Instance,\r
IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes,\r
- IN ESAL_FWB_GLOBAL *Global,\r
- IN BOOLEAN Virtual\r
+ IN ESAL_FWB_GLOBAL *Global\r
);\r
\r
EFI_STATUS\r
FvbGetVolumeAttributes (\r
IN UINTN Instance,\r
OUT EFI_FVB_ATTRIBUTES_2 *Attributes,\r
- IN ESAL_FWB_GLOBAL *Global,\r
- IN BOOLEAN Virtual\r
+ IN ESAL_FWB_GLOBAL *Global\r
);\r
\r
EFI_STATUS\r
FvbGetPhysicalAddress (\r
IN UINTN Instance,\r
OUT EFI_PHYSICAL_ADDRESS *Address,\r
- IN ESAL_FWB_GLOBAL *Global,\r
- IN BOOLEAN Virtual\r
+ IN ESAL_FWB_GLOBAL *Global\r
);\r
\r
EFI_STATUS\r
OUT UINTN *LbaAddress,\r
OUT UINTN *LbaLength,\r
OUT UINTN *NumOfBlocks,\r
- IN ESAL_FWB_GLOBAL *Global,\r
- IN BOOLEAN Virtual\r
+ IN ESAL_FWB_GLOBAL *Global\r
);\r
\r
//\r
...\r
);\r
\r
+//\r
+// The following functions have different implementations dependent on the\r
+// module type chosen for building this driver.\r
+//\r
+VOID\r
+InstallProtocolInterfaces (\r
+ IN EFI_FW_VOL_BLOCK_DEVICE *FvbDevice\r
+ );\r
+\r
+VOID\r
+InstallVirtualAddressChangeHandler (\r
+ VOID\r
+ );\r
+\r
+EFI_STATUS\r
+MarkIoMemoryRangeForRuntimeAccess (\r
+ IN EFI_PHYSICAL_ADDRESS BaseAddress,\r
+ IN UINTN Length\r
+ );\r
+\r
#endif\r