diff options
author | edgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-05-11 15:03:06 +0000 |
---|---|---|
committer | edgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-05-11 15:03:06 +0000 |
commit | 1ba13a5dfc555dae3173f0da0bf6ef6ab042215d (patch) | |
tree | 566e70a218b002562da710e767aad864d142520f /hw/etraxfs_dma.h | |
parent | eb173de6a2f32e91a63bf857b4b6a248629d6ff1 (diff) |
Add support for parts of the etraxfs dma controller.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4428 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/etraxfs_dma.h')
-rw-r--r-- | hw/etraxfs_dma.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/hw/etraxfs_dma.h b/hw/etraxfs_dma.h new file mode 100644 index 0000000000..27719aeae4 --- /dev/null +++ b/hw/etraxfs_dma.h @@ -0,0 +1,24 @@ +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); |