qemu/include/hw/cris/etraxfs_dma.h
<<
>>
Prefs
   1#ifndef HW_ETRAXFS_DMA_H
   2#define HW_ETRAXFS_DMA_H 1
   3
   4struct dma_context_metadata {
   5        /* data descriptor md */
   6        uint16_t metadata;
   7};
   8
   9struct etraxfs_dma_client
  10{
  11        /* DMA controller. */
  12        int channel;
  13        void *ctrl;
  14
  15        /* client.  */
  16        struct {
  17                int (*push)(void *opaque, unsigned char *buf,
  18                            int len, bool eop);
  19                void (*pull)(void *opaque);
  20                void (*metadata_push)(void *opaque,
  21                                      const struct dma_context_metadata *md);
  22                void *opaque;
  23        } client;
  24};
  25
  26void *etraxfs_dmac_init(hwaddr base, int nr_channels);
  27void etraxfs_dmac_connect(void *opaque, int channel, qemu_irq *line,
  28                          int input);
  29void etraxfs_dmac_connect_client(void *opaque, int c, 
  30                                 struct etraxfs_dma_client *cl);
  31int etraxfs_dmac_input(struct etraxfs_dma_client *client, 
  32                       void *buf, int len, int eop);
  33
  34#endif
  35