]>
Commit | Line | Data |
---|---|---|
87ecb68b PB |
1 | #ifndef SPARC32_DMA_H |
2 | #define SPARC32_DMA_H | |
3 | ||
9db2cf3f | 4 | #include "hw/sysbus.h" |
7f773ff5 | 5 | #include "hw/scsi/esp.h" |
e6ca02a4 | 6 | #include "hw/net/lance.h" |
db1015e9 | 7 | #include "qom/object.h" |
9db2cf3f MCA |
8 | |
9 | #define DMA_REGS 4 | |
10 | ||
11 | #define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device" | |
db1015e9 | 12 | typedef struct DMADeviceState DMADeviceState; |
8110fa1d EH |
13 | DECLARE_INSTANCE_CHECKER(DMADeviceState, SPARC32_DMA_DEVICE, |
14 | TYPE_SPARC32_DMA_DEVICE) | |
9db2cf3f | 15 | |
9db2cf3f MCA |
16 | |
17 | struct DMADeviceState { | |
18 | SysBusDevice parent_obj; | |
19 | ||
20 | MemoryRegion iomem; | |
21 | uint32_t dmaregs[DMA_REGS]; | |
22 | qemu_irq irq; | |
23 | void *iommu; | |
24 | qemu_irq gpio[2]; | |
9db2cf3f MCA |
25 | }; |
26 | ||
27 | #define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma" | |
db1015e9 | 28 | typedef struct ESPDMADeviceState ESPDMADeviceState; |
8110fa1d EH |
29 | DECLARE_INSTANCE_CHECKER(ESPDMADeviceState, SPARC32_ESPDMA_DEVICE, |
30 | TYPE_SPARC32_ESPDMA_DEVICE) | |
9db2cf3f | 31 | |
db1015e9 | 32 | struct ESPDMADeviceState { |
9db2cf3f | 33 | DMADeviceState parent_obj; |
7f773ff5 MCA |
34 | |
35 | SysBusESPState *esp; | |
db1015e9 | 36 | }; |
9db2cf3f MCA |
37 | |
38 | #define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma" | |
db1015e9 | 39 | typedef struct LEDMADeviceState LEDMADeviceState; |
8110fa1d EH |
40 | DECLARE_INSTANCE_CHECKER(LEDMADeviceState, SPARC32_LEDMA_DEVICE, |
41 | TYPE_SPARC32_LEDMA_DEVICE) | |
9db2cf3f | 42 | |
db1015e9 | 43 | struct LEDMADeviceState { |
9db2cf3f | 44 | DMADeviceState parent_obj; |
e6ca02a4 MCA |
45 | |
46 | SysBusPCNetState *lance; | |
db1015e9 | 47 | }; |
9db2cf3f | 48 | |
6aa62ed6 | 49 | #define TYPE_SPARC32_DMA "sparc32-dma" |
db1015e9 | 50 | typedef struct SPARC32DMAState SPARC32DMAState; |
8110fa1d EH |
51 | DECLARE_INSTANCE_CHECKER(SPARC32DMAState, SPARC32_DMA, |
52 | TYPE_SPARC32_DMA) | |
6aa62ed6 | 53 | |
db1015e9 | 54 | struct SPARC32DMAState { |
6aa62ed6 MCA |
55 | SysBusDevice parent_obj; |
56 | ||
57 | MemoryRegion dmamem; | |
4ca3d368 | 58 | MemoryRegion ledma_alias; |
6aa62ed6 MCA |
59 | ESPDMADeviceState *espdma; |
60 | LEDMADeviceState *ledma; | |
db1015e9 | 61 | }; |
6aa62ed6 | 62 | |
87ecb68b | 63 | /* sparc32_dma.c */ |
a8170e5e | 64 | void ledma_memory_read(void *opaque, hwaddr addr, |
87ecb68b | 65 | uint8_t *buf, int len, int do_bswap); |
a8170e5e | 66 | void ledma_memory_write(void *opaque, hwaddr addr, |
87ecb68b PB |
67 | uint8_t *buf, int len, int do_bswap); |
68 | void espdma_memory_read(void *opaque, uint8_t *buf, int len); | |
69 | void espdma_memory_write(void *opaque, uint8_t *buf, int len); | |
70 | ||
71 | #endif |