| struct dma_context_metadata { |
| struct etraxfs_dma_client |
| int (*push)(void *opaque, unsigned char *buf, |
| void (*pull)(void *opaque); |
| void (*metadata_push)(void *opaque, |
| const struct dma_context_metadata *md); |
| void *etraxfs_dmac_init(target_phys_addr_t base, int nr_channels); |
| void etraxfs_dmac_connect(void *opaque, int channel, qemu_irq *line, |
| void etraxfs_dmac_connect_client(void *opaque, int c, |
| struct etraxfs_dma_client *cl); |
| int etraxfs_dmac_input(struct etraxfs_dma_client *client, |
| void *buf, int len, int eop); |