Home | History | Annotate | Download | only in QemuFlashFvbServicesRuntimeDxe
      1 /** @file
      2   OVMF support for QEMU system firmware flash device
      3 
      4   Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved.<BR>
      5 
      6   This program and the accompanying materials are licensed and made available
      7   under the terms and conditions of the BSD License which accompanies this
      8   distribution.  The full text of the license may be found at
      9   http://opensource.org/licenses/bsd-license.php
     10 
     11   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 
     14 **/
     15 
     16 #ifndef __QEMU_FLASH_H__
     17 #define __QEMU_FLASH_H__
     18 
     19 #include <Protocol/FirmwareVolumeBlock.h>
     20 
     21 extern UINT8 *mFlashBase;
     22 
     23 /**
     24   Read from QEMU Flash
     25 
     26   @param[in] Lba      The starting logical block index to read from.
     27   @param[in] Offset   Offset into the block at which to begin reading.
     28   @param[in] NumBytes On input, indicates the requested read size. On
     29                       output, indicates the actual number of bytes read
     30   @param[in] Buffer   Pointer to the buffer to read into.
     31 
     32 **/
     33 EFI_STATUS
     34 QemuFlashRead (
     35   IN        EFI_LBA                              Lba,
     36   IN        UINTN                                Offset,
     37   IN        UINTN                                *NumBytes,
     38   IN        UINT8                                *Buffer
     39   );
     40 
     41 
     42 /**
     43   Write to QEMU Flash
     44 
     45   @param[in] Lba      The starting logical block index to write to.
     46   @param[in] Offset   Offset into the block at which to begin writing.
     47   @param[in] NumBytes On input, indicates the requested write size. On
     48                       output, indicates the actual number of bytes written
     49   @param[in] Buffer   Pointer to the data to write.
     50 
     51 **/
     52 EFI_STATUS
     53 QemuFlashWrite (
     54   IN        EFI_LBA                              Lba,
     55   IN        UINTN                                Offset,
     56   IN        UINTN                                *NumBytes,
     57   IN        UINT8                                *Buffer
     58   );
     59 
     60 
     61 /**
     62   Erase a QEMU Flash block
     63 
     64   @param Lba    The logical block index to erase.
     65 
     66 **/
     67 EFI_STATUS
     68 QemuFlashEraseBlock (
     69   IN   EFI_LBA      Lba
     70   );
     71 
     72 
     73 /**
     74   Initializes QEMU flash memory support
     75 
     76   @retval EFI_WRITE_PROTECTED   The QEMU flash device is not present.
     77   @retval EFI_SUCCESS           The QEMU flash device is supported.
     78 
     79 **/
     80 EFI_STATUS
     81 QemuFlashInitialize (
     82   VOID
     83   );
     84 
     85 
     86 VOID
     87 QemuFlashConvertPointers (
     88   VOID
     89   );
     90 
     91 #endif
     92 
     93