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>
diff --git a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c
index 2fd8d90..6033a2a 100644
--- a/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c
+++ b/ArmVirtPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c
@@ -53,26 +53,6 @@
 //

 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

diff --git a/OvmfPkg/Include/Library/QemuFwCfgLib.h b/OvmfPkg/Include/Library/QemuFwCfgLib.h
index 7c29422..40a0745 100644
--- a/OvmfPkg/Include/Library/QemuFwCfgLib.h
+++ b/OvmfPkg/Include/Library/QemuFwCfgLib.h
@@ -23,6 +23,14 @@
 //

 #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 {

   QemuFwCfgItemSignature            = 0x0000,

   QemuFwCfgItemInterfaceVersion     = 0x0001,

@@ -59,6 +67,17 @@
 

 } 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