qemu/include/hw/sparc/sparc32_dma.h
<<
>>
Prefs
   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"
  12OBJECT_DECLARE_SIMPLE_TYPE(DMADeviceState, SPARC32_DMA_DEVICE)
  13
  14
  15struct 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"
  26OBJECT_DECLARE_SIMPLE_TYPE(ESPDMADeviceState, SPARC32_ESPDMA_DEVICE)
  27
  28struct ESPDMADeviceState {
  29    DMADeviceState parent_obj;
  30
  31    SysBusESPState esp;
  32};
  33
  34#define TYPE_SPARC32_LEDMA_DEVICE "sparc32-ledma"
  35OBJECT_DECLARE_SIMPLE_TYPE(LEDMADeviceState, SPARC32_LEDMA_DEVICE)
  36
  37struct LEDMADeviceState {
  38    DMADeviceState parent_obj;
  39
  40    SysBusPCNetState lance;
  41};
  42
  43#define TYPE_SPARC32_DMA "sparc32-dma"
  44OBJECT_DECLARE_SIMPLE_TYPE(SPARC32DMAState, SPARC32_DMA)
  45
  46struct 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 */
  56void ledma_memory_read(void *opaque, hwaddr addr,
  57                       uint8_t *buf, int len, int do_bswap);
  58void ledma_memory_write(void *opaque, hwaddr addr,
  59                        uint8_t *buf, int len, int do_bswap);
  60void espdma_memory_read(void *opaque, uint8_t *buf, int len);
  61void espdma_memory_write(void *opaque, uint8_t *buf, int len);
  62
  63#endif
  64