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);
