00001 struct etraxfs_dma_client
00002 {
00003
00004 int channel;
00005 void *ctrl;
00006
00007
00008 struct
00009 {
00010 int (*push)(void *opaque, unsigned char *buf, int len);
00011 void (*pull)(void *opaque);
00012 void *opaque;
00013 } client;
00014 };
00015
00016 void *etraxfs_dmac_init(CPUState *env, target_phys_addr_t base,
00017 int nr_channels);
00018 void etraxfs_dmac_connect(void *opaque, int channel, qemu_irq *line,
00019 int input);
00020 void etraxfs_dmac_connect_client(void *opaque, int c,
00021 struct etraxfs_dma_client *cl);
00022 int etraxfs_dmac_input(struct etraxfs_dma_client *client,
00023 void *buf, int len, int eop);