ArmVirtPkg, OvmfPkg: QemuFwCfgLib: move DMA-related defs to lib class

Move the type and macro definitions related to QEMU's DMA-like fw_cfg
access method to the library class header.

Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Leif Lindholm <leif.lindholm@linaro.org>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
Laszlo Ersek 2016-11-30 11:35:00 +01:00
parent 5297c0bf83
commit de01f72cc7
2 changed files with 19 additions and 20 deletions

View File

@ -53,26 +53,6 @@ STATIC READ_BYTES_FUNCTION DmaReadBytes;
// //
STATIC READ_BYTES_FUNCTION *InternalQemuFwCfgReadBytes = MmioReadBytes; STATIC READ_BYTES_FUNCTION *InternalQemuFwCfgReadBytes = MmioReadBytes;
//
// Communication structure for DmaReadBytes(). All fields are encoded in big
// endian.
//
#pragma pack (1)
typedef struct {
UINT32 Control;
UINT32 Length;
UINT64 Address;
} FW_CFG_DMA_ACCESS;
#pragma pack ()
//
// Macros for the FW_CFG_DMA_ACCESS.Control bitmap (in native encoding).
//
#define FW_CFG_DMA_CTL_ERROR BIT0
#define FW_CFG_DMA_CTL_READ BIT1
#define FW_CFG_DMA_CTL_SKIP BIT2
#define FW_CFG_DMA_CTL_SELECT BIT3
/** /**
Returns a boolean indicating if the firmware configuration interface Returns a boolean indicating if the firmware configuration interface

View File

@ -23,6 +23,14 @@
// //
#define QEMU_FW_CFG_FNAME_SIZE 56 #define QEMU_FW_CFG_FNAME_SIZE 56
//
// Macros for the FW_CFG_DMA_ACCESS.Control bitmap (in native encoding).
//
#define FW_CFG_DMA_CTL_ERROR BIT0
#define FW_CFG_DMA_CTL_READ BIT1
#define FW_CFG_DMA_CTL_SKIP BIT2
#define FW_CFG_DMA_CTL_SELECT BIT3
typedef enum { typedef enum {
QemuFwCfgItemSignature = 0x0000, QemuFwCfgItemSignature = 0x0000,
QemuFwCfgItemInterfaceVersion = 0x0001, QemuFwCfgItemInterfaceVersion = 0x0001,
@ -59,6 +67,17 @@ typedef enum {
} FIRMWARE_CONFIG_ITEM; } FIRMWARE_CONFIG_ITEM;
//
// Communication structure for the DMA access method. All fields are encoded in
// big endian.
//
#pragma pack (1)
typedef struct {
UINT32 Control;
UINT32 Length;
UINT64 Address;
} FW_CFG_DMA_ACCESS;
#pragma pack ()
/** /**
Returns a boolean indicating if the firmware configuration interface Returns a boolean indicating if the firmware configuration interface