qemu/include/hw/dma-ctrl.h
<<
>>
Prefs
   1#ifndef DMA_CTRL_H
   2#define DMA_CTRL_H 1
   3
   4#include "qemu-common.h"
   5#include "hw/hw.h"
   6#include "qom/object.h"
   7
   8#define TYPE_DMA_CTRL "dma-ctrl"
   9
  10#define DMA_CTRL_CLASS(klass) \
  11     OBJECT_CLASS_CHECK(DmaCtrlClass, (klass), TYPE_DMA_CTRL)
  12#define DMA_CTRL_GET_CLASS(obj) \
  13    OBJECT_GET_CLASS(DmaCtrlClass, (obj), TYPE_DMA_CTRL)
  14#define DMA_CTRL(obj) \
  15     INTERFACE_CHECK(DmaCtrl, (obj), TYPE_DMA_CTRL)
  16
  17typedef void (*dmactrl_notify_fn)(void *opaque);
  18
  19typedef struct DmaCtrlNotify {
  20    void *opaque;
  21    dmactrl_notify_fn cb;
  22} DmaCtrlNotify;
  23
  24typedef struct DmaCtrl {
  25    Object Parent;
  26} DmaCtrl;
  27
  28typedef struct DmaCtrlClass {
  29    InterfaceClass parent;
  30
  31    void (*read)(DmaCtrl *dma_ctrl, hwaddr addr, uint32_t len,
  32                 DmaCtrlNotify *notify, bool start_dma);
  33} DmaCtrlClass;
  34
  35void dma_ctrl_read_with_notify(DmaCtrl *dma_ctrl, hwaddr addr, uint32_t len,
  36                   DmaCtrlNotify *notify, bool start_dma);
  37
  38#endif /* DMA_CTRL_H */
  39