blob: 27719aeae4d1bd785fa5e5deaedf1828dd7a14c7 [file] [log] [blame]
struct etraxfs_dma_client
{
/* DMA controller. */
int channel;
void *ctrl;
/* client. */
struct
{
int (*push)(void *opaque, unsigned char *buf, int len);
void (*pull)(void *opaque);
void *opaque;
} client;
};
void *etraxfs_dmac_init(CPUState *env, target_phys_addr_t base,
int nr_channels);
void etraxfs_dmac_connect(void *opaque, int channel, qemu_irq *line,
int input);
void etraxfs_dmac_connect_client(void *opaque, int c,
struct etraxfs_dma_client *cl);
void etraxfs_dmac_run(void *opaque);
int etraxfs_dmac_input(struct etraxfs_dma_client *client,
void *buf, int len, int eop);