#ifndef _ICE_TXRX_H_
#define _ICE_TXRX_H_
#include "ice_type.h"
#define ICE_DFLT_IRQ_WORK …
#define ICE_RXBUF_3072 …
#define ICE_RXBUF_2048 …
#define ICE_RXBUF_1664 …
#define ICE_RXBUF_1536 …
#define ICE_MAX_CHAINED_RX_BUFS …
#define ICE_MAX_BUF_TXD …
#define ICE_MIN_TX_LEN …
#define ICE_MAX_FRAME_LEGACY_RX …
#define ICE_MAX_READ_REQ_SIZE …
#define ICE_MAX_DATA_PER_TXD …
#define ICE_MAX_DATA_PER_TXD_ALIGNED …
#define ICE_MAX_TXQ_PER_TXQG …
#if (PAGE_SIZE < 8192)
#define ICE_2K_TOO_SMALL_WITH_PADDING …
static inline int ice_compute_pad(int rx_buf_len)
{ … }
static inline int ice_skb_pad(void)
{ … }
#define ICE_SKB_PAD …
#else
#define ICE_2K_TOO_SMALL_WITH_PADDING …
#define ICE_SKB_PAD …
#endif
#define ICE_CACHE_LINE_BYTES …
#define ICE_DESCS_PER_CACHE_LINE …
#define ICE_DESCS_FOR_CTX_DESC …
#define ICE_DESCS_FOR_SKB_DATA_PTR …
#define DESC_NEEDED …
#define ICE_DESC_UNUSED(R) …
#define ICE_RX_DESC_UNUSED(R) …
#define ICE_RING_QUARTER(R) …
#define ICE_TX_FLAGS_TSO …
#define ICE_TX_FLAGS_HW_VLAN …
#define ICE_TX_FLAGS_SW_VLAN …
#define ICE_TX_FLAGS_TSYN …
#define ICE_TX_FLAGS_IPV4 …
#define ICE_TX_FLAGS_IPV6 …
#define ICE_TX_FLAGS_TUNNEL …
#define ICE_TX_FLAGS_HW_OUTER_SINGLE_VLAN …
#define ICE_XDP_PASS …
#define ICE_XDP_CONSUMED …
#define ICE_XDP_TX …
#define ICE_XDP_REDIR …
#define ICE_XDP_EXIT …
#define ICE_SKB_CONSUMED …
#define ICE_RX_DMA_ATTR …
#define ICE_ETH_PKT_HDR_PAD …
#define ICE_TXD_LAST_DESC_CMD …
enum ice_tx_buf_type { … };
struct ice_tx_buf { … };
struct ice_tx_offload_params { … };
struct ice_rx_buf { … };
struct ice_q_stats { … };
struct ice_txq_stats { … };
struct ice_rxq_stats { … };
struct ice_ring_stats { … };
enum ice_ring_state_t { … };
enum ice_dyn_idx_t { … };
enum ice_rx_dtype { … };
struct ice_pkt_ctx { … };
struct ice_xdp_buff { … };
static_assert(…);
#define ICE_RX_ITR …
#define ICE_TX_ITR …
#define ICE_ITR_8K …
#define ICE_ITR_20K …
#define ICE_ITR_MAX …
#define ICE_DFLT_TX_ITR …
#define ICE_DFLT_RX_ITR …
enum ice_dynamic_itr { … };
#define ITR_IS_DYNAMIC(rc) …
#define ICE_ITR_GRAN_S …
#define ICE_ITR_GRAN_US …
#define ICE_ITR_MASK …
#define ITR_REG_ALIGN(setting) …
#define ICE_DFLT_INTRL …
#define ICE_MAX_INTRL …
#define ICE_IN_WB_ON_ITR_MODE …
#define ICE_GLINT_DYN_CTL_WB_ON_ITR(usecs, itr_idx) …
#define ICE_TX_ADVANCED …
#define ICE_TX_LEGACY …
struct ice_rx_ring { … } ____cacheline_internodealigned_in_smp;
struct ice_tx_ring { … } ____cacheline_internodealigned_in_smp;
static inline bool ice_ring_uses_build_skb(struct ice_rx_ring *ring)
{ … }
static inline void ice_set_ring_build_skb_ena(struct ice_rx_ring *ring)
{ … }
static inline void ice_clear_ring_build_skb_ena(struct ice_rx_ring *ring)
{ … }
static inline bool ice_ring_ch_enabled(struct ice_tx_ring *ring)
{ … }
static inline bool ice_ring_is_xdp(struct ice_tx_ring *ring)
{ … }
enum ice_container_type { … };
struct ice_ring_container { … };
struct ice_coalesce_stored { … };
#define ice_for_each_rx_ring(pos, head) …
#define ice_for_each_tx_ring(pos, head) …
static inline unsigned int ice_rx_pg_order(struct ice_rx_ring *ring)
{ … }
#define ice_rx_pg_size(_ring) …
ice_32b_rx_flex_desc;
bool ice_alloc_rx_bufs(struct ice_rx_ring *rxr, unsigned int cleaned_count);
netdev_tx_t ice_start_xmit(struct sk_buff *skb, struct net_device *netdev);
u16
ice_select_queue(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev);
void ice_clean_tx_ring(struct ice_tx_ring *tx_ring);
void ice_clean_rx_ring(struct ice_rx_ring *rx_ring);
int ice_setup_tx_ring(struct ice_tx_ring *tx_ring);
int ice_setup_rx_ring(struct ice_rx_ring *rx_ring);
void ice_free_tx_ring(struct ice_tx_ring *tx_ring);
void ice_free_rx_ring(struct ice_rx_ring *rx_ring);
int ice_napi_poll(struct napi_struct *napi, int budget);
int
ice_prgm_fdir_fltr(struct ice_vsi *vsi, struct ice_fltr_desc *fdir_desc,
u8 *raw_packet);
int ice_clean_rx_irq(struct ice_rx_ring *rx_ring, int budget);
void ice_clean_ctrl_tx_irq(struct ice_tx_ring *tx_ring);
#endif