struct cldma_request { struct cldma_gpd *gpd; /* Virtual address for CPU */
dma_addr_t gpd_addr; /* Physical address for DMA */ struct sk_buff *skb;
dma_addr_t mapped_buff; struct list_head entry;
};
struct cldma_ring { struct list_head gpd_ring; /* Ring of struct cldma_request */ unsignedint length; /* Number of struct cldma_request */ int pkt_size;
};
struct cldma_queue { struct cldma_ctrl *md_ctrl; enum mtk_txrx dir; unsignedint index; struct cldma_ring *tr_ring; struct cldma_request *tr_done; struct cldma_request *rx_refill; struct cldma_request *tx_next; int budget; /* Same as ring buffer size by default */
spinlock_t ring_lock;
wait_queue_head_t req_wq; /* Only for TX */ struct workqueue_struct *worker; struct work_struct cldma_work; int (*recv_skb)(struct cldma_queue *queue, struct sk_buff *skb);
};
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.1Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.