Store the child object directly within the sparc32-espdma object rather than using link properties. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Message-Id: <20200926140216.7368-4-mark.cave-ayland@ilande.co.uk> Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
		
			
				
	
	
		
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			64 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#ifndef SPARC32_DMA_H
 | 
						|
#define SPARC32_DMA_H
 | 
						|
 | 
						|
#include "hw/sysbus.h"
 | 
						|
#include "hw/scsi/esp.h"
 | 
						|
#include "hw/net/lance.h"
 | 
						|
#include "qom/object.h"
 | 
						|
 | 
						|
#define DMA_REGS 4
 | 
						|
 | 
						|
#define TYPE_SPARC32_DMA_DEVICE "sparc32-dma-device"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(DMADeviceState, SPARC32_DMA_DEVICE)
 | 
						|
 | 
						|
 | 
						|
struct DMADeviceState {
 | 
						|
    SysBusDevice parent_obj;
 | 
						|
 | 
						|
    MemoryRegion iomem;
 | 
						|
    uint32_t dmaregs[DMA_REGS];
 | 
						|
    qemu_irq irq;
 | 
						|
    void *iommu;
 | 
						|
    qemu_irq gpio[2];
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_SPARC32_ESPDMA_DEVICE "sparc32-espdma"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(ESPDMADeviceState, SPARC32_ESPDMA_DEVICE)
 | 
						|
 | 
						|
struct ESPDMADeviceState {
 | 
						|
    DMADeviceState parent_obj;
 | 
						|
 | 
						|
    SysBusESPState esp;
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(LEDMADeviceState, SPARC32_LEDMA_DEVICE)
 | 
						|
 | 
						|
struct LEDMADeviceState {
 | 
						|
    DMADeviceState parent_obj;
 | 
						|
 | 
						|
    SysBusPCNetState lance;
 | 
						|
};
 | 
						|
 | 
						|
#define TYPE_SPARC32_DMA "sparc32-dma"
 | 
						|
OBJECT_DECLARE_SIMPLE_TYPE(SPARC32DMAState, SPARC32_DMA)
 | 
						|
 | 
						|
struct SPARC32DMAState {
 | 
						|
    SysBusDevice parent_obj;
 | 
						|
 | 
						|
    MemoryRegion dmamem;
 | 
						|
    MemoryRegion ledma_alias;
 | 
						|
    ESPDMADeviceState espdma;
 | 
						|
    LEDMADeviceState ledma;
 | 
						|
};
 | 
						|
 | 
						|
/* sparc32_dma.c */
 | 
						|
void ledma_memory_read(void *opaque, hwaddr addr,
 | 
						|
                       uint8_t *buf, int len, int do_bswap);
 | 
						|
void ledma_memory_write(void *opaque, hwaddr addr,
 | 
						|
                        uint8_t *buf, int len, int do_bswap);
 | 
						|
void espdma_memory_read(void *opaque, uint8_t *buf, int len);
 | 
						|
void espdma_memory_write(void *opaque, uint8_t *buf, int len);
 | 
						|
 | 
						|
#endif
 |