5 /***********************External***************************/
8 * @brief DMA engine numbers, HIF need to map them to there
11 typedef enum dma_engine{
22 * @brief Interface type, each HIF should call with its own interface type
24 typedef enum dma_iftype{
25 DMA_IF_GMAC = 0x0,/* GMAC */
26 DMA_IF_PCI = 0x1,/*PCI */
27 DMA_IF_PCIE = 0x2 /*PCI Express */
32 A_UINT16 (*tx_init)(dma_engine_t eng_no, dma_iftype_t if_type);
33 void (*tx_start)(dma_engine_t eng_no);
34 A_UINT16 (*rx_init)(dma_engine_t eng_no, dma_iftype_t if_type);
35 void (*rx_config)(dma_engine_t eng_no, a_uint16_t num_desc,
37 void (*rx_start)(dma_engine_t eng_no);
38 A_UINT32 (*intr_status)(dma_iftype_t if_type);
39 A_UINT16 (*hard_xmit)(dma_engine_t eng_no, VBUF *buf);
40 void (*flush_xmit)(dma_engine_t eng_no);
41 A_UINT16 (*xmit_done)(dma_engine_t eng_no);
42 VBUF * (*reap_xmitted)(dma_engine_t eng_no);
43 VBUF * (*reap_recv)(dma_engine_t eng_no);
44 void (*return_recv)(dma_engine_t eng_no, VBUF *buf);
45 A_UINT16 (*recv_pkt)(dma_engine_t eng_no);
50 * @brief Install the DMA lib api's this for ROM patching
55 void dma_lib_module_install(struct dma_lib_api *apis);