1 #ifndef SPARC32_DMA_H 2 #define SPARC32_DMA_H 3 4 #include "hw/sysbus.h" 5 6 #define DMA_REGS 4 7 8 #define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device" 9 #define SPARC32_DMA_DEVICE(obj) OBJECT_CHECK(DMADeviceState, (obj), \ 10 TYPE_SPARC32_DMA_DEVICE) 11 12 typedef struct DMADeviceState DMADeviceState; 13 14 struct DMADeviceState { 15 SysBusDevice parent_obj; 16 17 MemoryRegion iomem; 18 uint32_t dmaregs[DMA_REGS]; 19 qemu_irq irq; 20 void *iommu; 21 qemu_irq gpio[2]; 22 uint32_t is_ledma; 23 }; 24 25 #define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma" 26 #define SPARC32_ESPDMA_DEVICE(obj) OBJECT_CHECK(ESPDMADeviceState, (obj), \ 27 TYPE_SPARC32_ESPDMA_DEVICE) 28 29 typedef struct ESPDMADeviceState { 30 DMADeviceState parent_obj; 31 } ESPDMADeviceState; 32 33 #define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma" 34 #define SPARC32_LEDMA_DEVICE(obj) OBJECT_CHECK(LEDMADeviceState, (obj), \ 35 TYPE_SPARC32_LEDMA_DEVICE) 36 37 typedef struct LEDMADeviceState { 38 DMADeviceState parent_obj; 39 } LEDMADeviceState; 40 41 /* sparc32_dma.c */ 42 void ledma_memory_read(void *opaque, hwaddr addr, 43 uint8_t *buf, int len, int do_bswap); 44 void ledma_memory_write(void *opaque, hwaddr addr, 45 uint8_t *buf, int len, int do_bswap); 46 void espdma_memory_read(void *opaque, uint8_t *buf, int len); 47 void espdma_memory_write(void *opaque, uint8_t *buf, int len); 48 49 #endif 50