root / hw / etraxfs_dma.h @ 43cf8ae6
History | View | Annotate | Download (773 Bytes)
1 | 73a511de | Lars Persson | struct dma_context_metadata {
|
---|---|---|---|
2 | 73a511de | Lars Persson | /* data descriptor md */
|
3 | 73a511de | Lars Persson | uint16_t metadata; |
4 | 73a511de | Lars Persson | }; |
5 | 73a511de | Lars Persson | |
6 | 1ba13a5d | edgar_igl | struct etraxfs_dma_client
|
7 | 1ba13a5d | edgar_igl | { |
8 | 1ba13a5d | edgar_igl | /* DMA controller. */
|
9 | 1ba13a5d | edgar_igl | int channel;
|
10 | 1ba13a5d | edgar_igl | void *ctrl;
|
11 | 1ba13a5d | edgar_igl | |
12 | 1ba13a5d | edgar_igl | /* client. */
|
13 | 73a511de | Lars Persson | struct {
|
14 | 73a511de | Lars Persson | int (*push)(void *opaque, unsigned char *buf, |
15 | 73a511de | Lars Persson | int len, bool eop); |
16 | 1ba13a5d | edgar_igl | void (*pull)(void *opaque); |
17 | 73a511de | Lars Persson | void (*metadata_push)(void *opaque, |
18 | 73a511de | Lars Persson | const struct dma_context_metadata *md); |
19 | 1ba13a5d | edgar_igl | void *opaque;
|
20 | 1ba13a5d | edgar_igl | } client; |
21 | 1ba13a5d | edgar_igl | }; |
22 | 1ba13a5d | edgar_igl | |
23 | c227f099 | Anthony Liguori | void *etraxfs_dmac_init(target_phys_addr_t base, int nr_channels); |
24 | 1ba13a5d | edgar_igl | void etraxfs_dmac_connect(void *opaque, int channel, qemu_irq *line, |
25 | 1ba13a5d | edgar_igl | int input);
|
26 | 1ba13a5d | edgar_igl | void etraxfs_dmac_connect_client(void *opaque, int c, |
27 | 1ba13a5d | edgar_igl | struct etraxfs_dma_client *cl);
|
28 | 1ba13a5d | edgar_igl | int etraxfs_dmac_input(struct etraxfs_dma_client *client, |
29 | 1ba13a5d | edgar_igl | void *buf, int len, int eop); |