qemu-e2k/hw/etraxfs_dma.h

24 lines
587 B
C

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);
int etraxfs_dmac_input(struct etraxfs_dma_client *client,
void *buf, int len, int eop);