]>
Commit | Line | Data |
---|---|---|
93f1e401 EI |
1 | /* AXI DMA connection. Used until qdev provides a generic way. */ |
2 | typedef void (*DMAPushFn)(void *opaque, | |
3 | unsigned char *buf, size_t len, uint32_t *app); | |
4 | ||
5 | struct XilinxDMAConnection { | |
6 | void *dma; | |
7 | void *client; | |
8 | ||
9 | DMAPushFn to_dma; | |
10 | DMAPushFn to_client; | |
11 | }; | |
12 | ||
13 | static inline void xlx_dma_connect_client(struct XilinxDMAConnection *dmach, | |
14 | void *c, DMAPushFn f) | |
15 | { | |
16 | dmach->client = c; | |
17 | dmach->to_client = f; | |
18 | } | |
19 | ||
20 | static inline void xlx_dma_connect_dma(struct XilinxDMAConnection *dmach, | |
21 | void *d, DMAPushFn f) | |
22 | { | |
23 | dmach->dma = d; | |
24 | dmach->to_dma = f; | |
25 | } | |
26 | ||
27 | static inline | |
28 | void xlx_dma_push_to_dma(struct XilinxDMAConnection *dmach, | |
29 | uint8_t *buf, size_t len, uint32_t *app) | |
30 | { | |
31 | dmach->to_dma(dmach->dma, buf, len, app); | |
32 | } | |
33 | static inline | |
34 | void xlx_dma_push_to_client(struct XilinxDMAConnection *dmach, | |
35 | uint8_t *buf, size_t len, uint32_t *app) | |
36 | { | |
37 | dmach->to_client(dmach->client, buf, len, app); | |
38 | } | |
39 |