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_BLOCK2_PROTOCOL Read function.
26 
27   @param[in] This     The EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
28   @param[in] Lba      The starting logical block index
29                       from which to read.
30   @param[in] Offset   Offset into the block at which to begin reading.
31   @param[in] NumBytes The number of bytes read.
32   @param[in] Buffer   Pointer to the buffer that was read, and will be
33                       returned to the caller.
34 
35 **/
36 VOID
37 EFIAPI
PlatformFvbDataRead(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL * This,IN EFI_LBA Lba,IN UINTN Offset,IN UINTN NumBytes,IN UINT8 * Buffer)38 PlatformFvbDataRead (
39   IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
40   IN        EFI_LBA                             Lba,
41   IN        UINTN                               Offset,
42   IN        UINTN                               NumBytes,
43   IN        UINT8                               *Buffer
44   )
45 {
46 }
47 
48 
49 /**
50   This function will be called following a call to the
51   EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Write function.
52 
53   @param[in] This     EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
54   @param[in] Lba      The starting logical block index to written to.
55   @param[in] Offset   Offset into the block at which to begin writing.
56   @param[in] NumBytes The number of bytes written.
57   @param[in] Buffer   Pointer to the buffer that was written.
58 
59 **/
60 VOID
61 EFIAPI
PlatformFvbDataWritten(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL * This,IN EFI_LBA Lba,IN UINTN Offset,IN UINTN NumBytes,IN UINT8 * Buffer)62 PlatformFvbDataWritten (
63   IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
64   IN        EFI_LBA                             Lba,
65   IN        UINTN                               Offset,
66   IN        UINTN                               NumBytes,
67   IN        UINT8                               *Buffer
68   )
69 {
70   STATIC EFI_EVENT EventToSignal = NULL;
71 
72   if (!EfiAtRuntime ()) {
73     if (EventToSignal == NULL) {
74       EventToSignal = (EFI_EVENT)(UINTN) PcdGet64 (PcdEmuVariableEvent);
75     }
76     if (EventToSignal != NULL) {
77       gBS->SignalEvent (EventToSignal);
78     }
79   }
80 }
81 
82 
83 /**
84   This function will be called following a call to the
85   EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase function.
86 
87   @param This   Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL
88                 instance.
89   @param List   The variable argument list as documented for
90                 the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL Erase
91                 function.
92 
93 **/
94 VOID
95 EFIAPI
PlatformFvbBlocksErased(IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL * This,IN VA_LIST List)96 PlatformFvbBlocksErased (
97   IN CONST  EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
98   IN  VA_LIST       List
99   )
100 {
101 }
102 
103 
104