Statistics
| Branch: | Revision:

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