sparc32-ledma: use object_initialize_child() for lance child object
[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 #include "hw/net/lance.h"
7 #include "qom/object.h"
8
9 #define DMA_REGS 4
10
11 #define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device"
12 OBJECT_DECLARE_SIMPLE_TYPE(DMADeviceState, SPARC32_DMA_DEVICE)
13
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 };
24
25 #define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma"
26 OBJECT_DECLARE_SIMPLE_TYPE(ESPDMADeviceState, SPARC32_ESPDMA_DEVICE)
27
28 struct ESPDMADeviceState {
29 DMADeviceState parent_obj;
30
31 SysBusESPState *esp;
32 };
33
34 #define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma"
35 OBJECT_DECLARE_SIMPLE_TYPE(LEDMADeviceState, SPARC32_LEDMA_DEVICE)
36
37 struct LEDMADeviceState {
38 DMADeviceState parent_obj;
39
40 SysBusPCNetState lance;
41 };
42
43 #define TYPE_SPARC32_DMA "sparc32-dma"
44 OBJECT_DECLARE_SIMPLE_TYPE(SPARC32DMAState, SPARC32_DMA)
45
46 struct SPARC32DMAState {
47 SysBusDevice parent_obj;
48
49 MemoryRegion dmamem;
50 MemoryRegion ledma_alias;
51 ESPDMADeviceState espdma;
52 LEDMADeviceState ledma;
53 };
54
55 /* sparc32_dma.c */
56 void ledma_memory_read(void *opaque, hwaddr addr,
57 uint8_t *buf, int len, int do_bswap);
58 void ledma_memory_write(void *opaque, hwaddr addr,
59 uint8_t *buf, int len, int do_bswap);
60 void espdma_memory_read(void *opaque, uint8_t *buf, int len);
61 void espdma_memory_write(void *opaque, uint8_t *buf, int len);
62
63 #endif