From 3a4ddfc564d9b599d408a7d2d7992a51a5100e22 Mon Sep 17 00:00:00 2001 From: jljusten Date: Sun, 9 Jan 2011 03:51:16 +0000 Subject: [PATCH] OvmfPkg EMU FVB: Add 2 functions to PlatformFvbLib Add PlatformFvbDataRead and PlatformFvbBlocksErased functions. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11241 6f19259b-4bc3-4df7-8a09-765794883524 --- OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c | 3 ++ OvmfPkg/Include/Library/PlatformFvbLib.h | 48 ++++++++++++++++- .../EmuVariableFvbLib/EmuVariableFvbLib.c | 51 ++++++++++++++++++- .../PlatformFvbLibNull/PlatformFvbLibNull.c | 47 +++++++++++++++++ 4 files changed, 145 insertions(+), 4 deletions(-) diff --git a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c index 314dc987f9..4d01ec75da 100644 --- a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c +++ b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c @@ -377,6 +377,8 @@ FvbProtocolEraseBlocks ( EraseSize, ERASED_UINT8 ); + VA_START (args, This); + PlatformFvbBlocksErased (This, args); } return EFI_SUCCESS; @@ -557,6 +559,7 @@ FvbProtocolRead ( if (*NumBytes > 0) { CopyMem (Buffer, FvbDataPtr, *NumBytes); + PlatformFvbDataRead (This, Lba, Offset, *NumBytes, Buffer); } return EFI_SUCCESS; diff --git a/OvmfPkg/Include/Library/PlatformFvbLib.h b/OvmfPkg/Include/Library/PlatformFvbLib.h index 03ac2fb5a3..d4d09b2ebd 100644 --- a/OvmfPkg/Include/Library/PlatformFvbLib.h +++ b/OvmfPkg/Include/Library/PlatformFvbLib.h @@ -20,9 +20,33 @@ /** This function will be called following a call to the - EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL Write function. + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Read function. - @param[in] This EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL instance. + @param[in] This The EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance. + @param[in] Lba The starting logical block index + from which to read. + @param[in] Offset Offset into the block at which to begin reading. + @param[in] NumBytes The number of bytes read. + @param[in] Buffer Pointer to the buffer that was read, and will be + returned to the caller. + +**/ +VOID +EFIAPI +PlatformFvbDataRead ( + IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Offset, + IN UINTN NumBytes, + IN UINT8 *Buffer + ); + + +/** + This function will be called following a call to the + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Write function. + + @param[in] This EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance. @param[in] Lba The starting logical block index to written to. @param[in] Offset Offset into the block at which to begin writing. @param[in] NumBytes The number of bytes written. @@ -39,5 +63,25 @@ PlatformFvbDataWritten ( IN UINT8 *Buffer ); + +/** + This function will be called following a call to the + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase function. + + @param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL + instance. + @param List The variable argument list as documented for + the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase + function. + +**/ +VOID +EFIAPI +PlatformFvbBlocksErased ( + IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, + IN VA_LIST List + ); + + #endif diff --git a/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c b/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c index e3f153ed37..9b449a6dec 100644 --- a/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c +++ b/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c @@ -22,9 +22,35 @@ /** This function will be called following a call to the - EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL Write function. + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Read function. - @param[in] This EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL instance. + @param[in] This The EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance. + @param[in] Lba The starting logical block index + from which to read. + @param[in] Offset Offset into the block at which to begin reading. + @param[in] NumBytes The number of bytes read. + @param[in] Buffer Pointer to the buffer that was read, and will be + returned to the caller. + +**/ +VOID +EFIAPI +PlatformFvbDataRead ( + IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Offset, + IN UINTN NumBytes, + IN UINT8 *Buffer + ) +{ +} + + +/** + This function will be called following a call to the + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Write function. + + @param[in] This EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance. @param[in] Lba The starting logical block index to written to. @param[in] Offset Offset into the block at which to begin writing. @param[in] NumBytes The number of bytes written. @@ -54,3 +80,24 @@ PlatformFvbDataWritten ( } +/** + This function will be called following a call to the + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase function. + + @param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL + instance. + @param List The variable argument list as documented for + the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase + function. + +**/ +VOID +EFIAPI +PlatformFvbBlocksErased ( + IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, + IN VA_LIST List + ) +{ +} + + diff --git a/OvmfPkg/Library/PlatformFvbLibNull/PlatformFvbLibNull.c b/OvmfPkg/Library/PlatformFvbLibNull/PlatformFvbLibNull.c index 5b15160535..ea5da6e0d6 100644 --- a/OvmfPkg/Library/PlatformFvbLibNull/PlatformFvbLibNull.c +++ b/OvmfPkg/Library/PlatformFvbLibNull/PlatformFvbLibNull.c @@ -16,6 +16,32 @@ #include +/** + This function will be called following a call to the + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Read function. + + @param[in] This The EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance. + @param[in] Lba The starting logical block index + from which to read. + @param[in] Offset Offset into the block at which to begin reading. + @param[in] NumBytes The number of bytes read. + @param[in] Buffer Pointer to the buffer that was read, and will be + returned to the caller. + +**/ +VOID +EFIAPI +PlatformFvbDataRead ( + IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, + IN EFI_LBA Lba, + IN UINTN Offset, + IN UINTN NumBytes, + IN UINT8 *Buffer + ) +{ +} + + /** This function will be called following a call to the EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL Write function. @@ -40,3 +66,24 @@ PlatformFvbDataWritten ( } +/** + This function will be called following a call to the + EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase function. + + @param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL + instance. + @param List The variable argument list as documented for + the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase + function. + +**/ +VOID +EFIAPI +PlatformFvbBlocksErased ( + IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This, + IN VA_LIST List + ) +{ +} + + -- 2.39.5