X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=OvmfPkg%2FQemuFlashFvbServicesRuntimeDxe%2FFwBlockService.h;h=178f578d49f0744582484c3dfad8edd2ea2e1611;hb=0ab029d2f7e70af873311dd05a8ad13aadaff270;hp=67140d0a768ab1ef14bfd5f7f8c8b8ef725416b9;hpb=a05aff56554f4ff74629d13db92260d504f8cb5b;p=mirror_edk2.git diff --git a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h index 67140d0a76..178f578d49 100644 --- a/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h +++ b/OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockService.h @@ -23,24 +23,19 @@ #ifndef _FW_BLOCK_SERVICE_H #define _FW_BLOCK_SERVICE_H -// -// BugBug: Add documentation here for data structure!!!! -// -#define FVB_PHYSICAL 0 -#define FVB_VIRTUAL 1 - typedef struct { - UINTN FvBase[2]; + UINTN FvBase; UINTN NumOfBlocks; EFI_FIRMWARE_VOLUME_HEADER VolumeHeader; } EFI_FW_VOL_INSTANCE; typedef struct { UINT32 NumFv; - EFI_FW_VOL_INSTANCE *FvInstance[2]; - UINT8 *FvbScratchSpace[2]; + EFI_FW_VOL_INSTANCE *FvInstance; } ESAL_FWB_GLOBAL; +extern ESAL_FWB_GLOBAL *mFvbModuleGlobal; + // // Fvb Protocol instance data // @@ -79,24 +74,21 @@ EFI_STATUS FvbSetVolumeAttributes ( IN UINTN Instance, IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes, - IN ESAL_FWB_GLOBAL *Global, - IN BOOLEAN Virtual + IN ESAL_FWB_GLOBAL *Global ); EFI_STATUS FvbGetVolumeAttributes ( IN UINTN Instance, OUT EFI_FVB_ATTRIBUTES_2 *Attributes, - IN ESAL_FWB_GLOBAL *Global, - IN BOOLEAN Virtual + IN ESAL_FWB_GLOBAL *Global ); EFI_STATUS FvbGetPhysicalAddress ( IN UINTN Instance, OUT EFI_PHYSICAL_ADDRESS *Address, - IN ESAL_FWB_GLOBAL *Global, - IN BOOLEAN Virtual + IN ESAL_FWB_GLOBAL *Global ); EFI_STATUS @@ -121,8 +113,7 @@ FvbGetLbaAddress ( OUT UINTN *LbaAddress, OUT UINTN *LbaLength, OUT UINTN *NumOfBlocks, - IN ESAL_FWB_GLOBAL *Global, - IN BOOLEAN Virtual + IN ESAL_FWB_GLOBAL *Global ); // @@ -185,4 +176,24 @@ FvbProtocolEraseBlocks ( ... ); +// +// The following functions have different implementations dependent on the +// module type chosen for building this driver. +// +VOID +InstallProtocolInterfaces ( + IN EFI_FW_VOL_BLOCK_DEVICE *FvbDevice + ); + +VOID +InstallVirtualAddressChangeHandler ( + VOID + ); + +EFI_STATUS +MarkIoMemoryRangeForRuntimeAccess ( + IN EFI_PHYSICAL_ADDRESS BaseAddress, + IN UINTN Length + ); + #endif