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