]>
Commit | Line | Data |
---|---|---|
73a511de LP |
1 | struct dma_context_metadata { |
2 | /* data descriptor md */ | |
3 | uint16_t metadata; | |
4 | }; | |
5 | ||
1ba13a5d EI |
6 | struct etraxfs_dma_client |
7 | { | |
8 | /* DMA controller. */ | |
9 | int channel; | |
10 | void *ctrl; | |
11 | ||
12 | /* client. */ | |
73a511de LP |
13 | struct { |
14 | int (*push)(void *opaque, unsigned char *buf, | |
15 | int len, bool eop); | |
1ba13a5d | 16 | void (*pull)(void *opaque); |
73a511de LP |
17 | void (*metadata_push)(void *opaque, |
18 | const struct dma_context_metadata *md); | |
1ba13a5d EI |
19 | void *opaque; |
20 | } client; | |
21 | }; | |
22 | ||
c227f099 | 23 | void *etraxfs_dmac_init(target_phys_addr_t base, int nr_channels); |
1ba13a5d EI |
24 | void etraxfs_dmac_connect(void *opaque, int channel, qemu_irq *line, |
25 | int input); | |
26 | void etraxfs_dmac_connect_client(void *opaque, int c, | |
27 | struct etraxfs_dma_client *cl); | |
1ba13a5d EI |
28 | int etraxfs_dmac_input(struct etraxfs_dma_client *client, |
29 | void *buf, int len, int eop); |