]> git.proxmox.com Git - mirror_edk2.git/blob - OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c
OvmfPkg EMU FVB: Convert to FVB2 protocol
[mirror_edk2.git] / OvmfPkg / Library / EmuVariableFvbLib / EmuVariableFvbLib.c
1 /** @file
2 OVMF platform customization for EMU Variable FVB driver
3
4 Copyright (c) 2009 - 2011, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12
13 **/
14
15 #include "PiDxe.h"
16 #include <Library/DebugLib.h>
17 #include <Library/PcdLib.h>
18 #include <Library/PlatformFvbLib.h>
19 #include <Library/UefiBootServicesTableLib.h>
20 #include <Library/UefiRuntimeLib.h>
21
22
23 /**
24 This function will be called following a call to the
25 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL Write function.
26
27 @param[in] This EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL instance.
28 @param[in] Lba The starting logical block index to written to.
29 @param[in] Offset Offset into the block at which to begin writing.
30 @param[in] NumBytes The number of bytes written.
31 @param[in] Buffer Pointer to the buffer that was written.
32
33 **/
34 VOID
35 EFIAPI
36 PlatformFvbDataWritten (
37 IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
38 IN EFI_LBA Lba,
39 IN UINTN Offset,
40 IN UINTN NumBytes,
41 IN UINT8 *Buffer
42 )
43 {
44 STATIC EFI_EVENT EventToSignal = NULL;
45
46 if (!EfiAtRuntime ()) {
47 if (EventToSignal == NULL) {
48 EventToSignal = (EFI_EVENT)(UINTN) PcdGet64 (PcdEmuVariableEvent);
49 }
50 if (EventToSignal != NULL) {
51 gBS->SignalEvent (EventToSignal);
52 }
53 }
54 }
55
56