root / include / hw / cris / etraxfs_dma.h @ 0d09e41a
History | View | Annotate | Download (822 Bytes)
1 |
#ifndef HW_ETRAXFS_DMA_H
|
---|---|
2 |
#define HW_ETRAXFS_DMA_H 1 |
3 |
|
4 |
struct dma_context_metadata {
|
5 |
/* data descriptor md */
|
6 |
uint16_t metadata; |
7 |
}; |
8 |
|
9 |
struct etraxfs_dma_client
|
10 |
{ |
11 |
/* DMA controller. */
|
12 |
int channel;
|
13 |
void *ctrl;
|
14 |
|
15 |
/* client. */
|
16 |
struct {
|
17 |
int (*push)(void *opaque, unsigned char *buf, |
18 |
int len, bool eop); |
19 |
void (*pull)(void *opaque); |
20 |
void (*metadata_push)(void *opaque, |
21 |
const struct dma_context_metadata *md); |
22 |
void *opaque;
|
23 |
} client; |
24 |
}; |
25 |
|
26 |
void *etraxfs_dmac_init(hwaddr base, int nr_channels); |
27 |
void etraxfs_dmac_connect(void *opaque, int channel, qemu_irq *line, |
28 |
int input);
|
29 |
void etraxfs_dmac_connect_client(void *opaque, int c, |
30 |
struct etraxfs_dma_client *cl);
|
31 |
int etraxfs_dmac_input(struct etraxfs_dma_client *client, |
32 |
void *buf, int len, int eop); |
33 |
|
34 |
#endif
|