Patchwork [01/14] Define DMA address and direction types

login
register
mail settings
Submitter David Gibson
Date Oct. 31, 2011, 6:06 a.m.
Message ID <1320041218-30487-2-git-send-email-david@gibson.dropbear.id.au>
Download mbox | patch
Permalink /patch/122736/
State New
Headers show

Comments

David Gibson - Oct. 31, 2011, 6:06 a.m.
As a preliminary to adding more extensive DMA and IOMMU infrastructure
support into qemu, this patch defines a dma_addr_t for storing DMA bus
addresses and a DMADirection enum which describes whether a DMA is
from an external device to main memory or from main memory to an
external device.

For now dma_addr_t is just defined to be target_phys_addr_t, but in
future, we can change this to support machines where we have bus
addresses which don't necessarily have the same format as CPU physical
addresses.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 dma.h |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
Anthony Liguori - Nov. 1, 2011, 10:21 p.m.
On 10/31/2011 01:06 AM, David Gibson wrote:
> As a preliminary to adding more extensive DMA and IOMMU infrastructure
> support into qemu, this patch defines a dma_addr_t for storing DMA bus
> addresses and a DMADirection enum which describes whether a DMA is
> from an external device to main memory or from main memory to an
> external device.
>
> For now dma_addr_t is just defined to be target_phys_addr_t, but in
> future, we can change this to support machines where we have bus
> addresses which don't necessarily have the same format as CPU physical
> addresses.
>
> Signed-off-by: David Gibson<david@gibson.dropbear.id.au>

Applied all.  Thanks.

Regards,

Anthony Liguori

> ---
>   dma.h |    9 +++++++++
>   1 files changed, 9 insertions(+), 0 deletions(-)
>
> diff --git a/dma.h b/dma.h
> index 2bdc236..56e163a 100644
> --- a/dma.h
> +++ b/dma.h
> @@ -18,6 +18,15 @@
>   typedef struct ScatterGatherEntry ScatterGatherEntry;
>
>   #if defined(TARGET_PHYS_ADDR_BITS)
> +typedef target_phys_addr_t dma_addr_t;
> +
> +#define DMA_ADDR_FMT TARGET_FMT_plx
> +
> +typedef enum {
> +    DMA_DIRECTION_TO_DEVICE = 0,
> +    DMA_DIRECTION_FROM_DEVICE = 1,
> +} DMADirection;
> +
>   struct ScatterGatherEntry {
>       target_phys_addr_t base;
>       target_phys_addr_t len;

Patch

diff --git a/dma.h b/dma.h
index 2bdc236..56e163a 100644
--- a/dma.h
+++ b/dma.h
@@ -18,6 +18,15 @@ 
 typedef struct ScatterGatherEntry ScatterGatherEntry;
 
 #if defined(TARGET_PHYS_ADDR_BITS)
+typedef target_phys_addr_t dma_addr_t;
+
+#define DMA_ADDR_FMT TARGET_FMT_plx
+
+typedef enum {
+    DMA_DIRECTION_TO_DEVICE = 0,
+    DMA_DIRECTION_FROM_DEVICE = 1,
+} DMADirection;
+
 struct ScatterGatherEntry {
     target_phys_addr_t base;
     target_phys_addr_t len;