/* netdev tx queue len for Luxor. The default value is 1000. * ifconfig eth1 txqueuelen 3000 - to change it at runtime.
*/ #define TN40_NDEV_TXQ_LEN 1000
struct tn40_fifo {
dma_addr_t da; /* Physical address of fifo (used by HW) */ char *va; /* Virtual address of fifo (used by SW) */
u32 rptr, wptr; /* Cached values of RPTR and WPTR registers, * they're 32 bits on both 32 and 64 archs.
*/
u16 reg_cfg0;
u16 reg_cfg1;
u16 reg_rptr;
u16 reg_wptr;
u16 memsz; /* Memory size allocated for fifo */
u16 size_mask;
u16 pktsz; /* Skb packet size to allocate */
u16 rcvno; /* Number of buffers that come from this RXF */
};
struct tn40_txf_fifo { struct tn40_fifo m; /* The minimal set of variables used by all fifos */
};
struct tn40_txd_fifo { struct tn40_fifo m; /* The minimal set of variables used by all fifos */
};
struct tn40_rxf_fifo { struct tn40_fifo m; /* The minimal set of variables used by all fifos */
};
struct tn40_rxd_fifo { struct tn40_fifo m; /* The minimal set of variables used by all fifos */
};
union tn40_tx_dma_addr {
dma_addr_t dma; struct sk_buff *skb;
};
/* Entry in the db. * if len == 0 addr is dma * if len != 0 addr is skb
*/ struct tn40_tx_map { union tn40_tx_dma_addr addr; int len;
};
/* tx database - implemented as circular fifo buffer */ struct tn40_txdb { struct tn40_tx_map *start; /* Points to the first element */ struct tn40_tx_map *end; /* Points just AFTER the last element */ struct tn40_tx_map *rptr; /* Points to the next element to read */ struct tn40_tx_map *wptr; /* Points to the next element to write */ int size; /* Number of elements in the db */
};
struct napi_struct napi; /* RX FIFOs: 1 for data (full) descs, and 2 for free descs */ struct tn40_rxd_fifo rxd_fifo0; struct tn40_rxf_fifo rxf_fifo0; struct tn40_rxdb *rxdb0; /* Rx dbs to store skb pointers */ struct page_pool *page_pool;
/* Tx FIFOs: 1 for data desc, 1 for empty (acks) desc */ struct tn40_txd_fifo txd_fifo0; struct tn40_txf_fifo txf_fifo0; struct tn40_txdb txdb; int tx_level; int tx_update_mark; int tx_noupd;
int stats_flag; struct rtnl_link_stats64 stats;
u64 alloc_fail; struct u64_stats_sync syncp;
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.