sparc32_dma.h 1.5 KB

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