gve_tx_ring
int gve_xdp_xmit_one(struct gve_priv *priv, struct gve_tx_ring *tx,
int gve_xdp_xmit_one_dqo(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx);
bool gve_tx_clean_pending(struct gve_priv *priv, struct gve_tx_ring *tx);
struct gve_tx_ring *tx; /* tx rings on this block */
struct gve_tx_ring *tx;
struct gve_tx_ring *tx; /* array of tx_cfg.num_queues */
struct gve_tx_ring *tx = &priv->tx[queue_index];
int gve_clean_tx_done_dqo(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx = &priv->tx[ring];
struct gve_tx_ring *tx = &priv->tx[idx];
struct gve_tx_ring *tx = &priv->tx[idx];
struct gve_tx_ring *tx;
struct gve_tx_ring *tx;
struct gve_tx_ring *tx = block->tx;
bool gve_tx_clean_pending(struct gve_priv *priv, struct gve_tx_ring *tx)
static int gve_clean_xdp_done(struct gve_priv *priv, struct gve_tx_ring *tx,
static int gve_clean_tx_done(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx = &priv->tx[idx];
static void gve_tx_free_ring_gqi(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx = &priv->tx[idx];
struct gve_tx_ring *tx = &priv->tx[tx_qid];
struct gve_tx_ring *tx,
struct gve_tx_ring *tx = cfg->tx;
tx = kvzalloc_objs(struct gve_tx_ring, cfg->qcfg->max_queues);
struct gve_tx_ring *tx = cfg->tx;
static inline u32 gve_tx_avail(struct gve_tx_ring *tx)
static inline int gve_skb_fifo_bytes_required(struct gve_tx_ring *tx,
static inline bool gve_can_tx(struct gve_tx_ring *tx, int bytes_required)
static int gve_maybe_stop_tx(struct gve_priv *priv, struct gve_tx_ring *tx,
static int gve_tx_add_skb_copy(struct gve_priv *priv, struct gve_tx_ring *tx, struct sk_buff *skb)
static int gve_tx_add_skb_no_copy(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx;
static int gve_tx_fill_xdp(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx;
int gve_xdp_xmit_one(struct gve_priv *priv, struct gve_tx_ring *tx,
static int gve_clean_tx_done(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx)
static int gve_xsk_tx(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx;
struct gve_tx_ring *tx = block->tx;
static bool gve_has_pending_packet(struct gve_tx_ring *tx)
static void gve_xsk_reorder_queue_push_dqo(struct gve_tx_ring *tx,
gve_xsk_reorder_queue_head(struct gve_tx_ring *tx)
static void gve_xsk_reorder_queue_pop_dqo(struct gve_tx_ring *tx)
struct gve_tx_ring *tx;
static bool gve_xsk_tx_dqo(struct gve_priv *priv, struct gve_tx_ring *tx,
static void add_to_list(struct gve_tx_ring *tx, struct gve_index_list *list,
static void remove_from_list(struct gve_tx_ring *tx,
struct gve_tx_ring *tx = &priv->tx[tx_qid];
struct gve_tx_ring *tx, bool is_napi,
gve_alloc_pending_packet(struct gve_tx_ring *tx)
struct gve_tx_ring *tx, u16 compl_tag,
struct gve_tx_ring *tx)
struct gve_tx_ring *tx)
static void gve_tx_process_xsk_completions(struct gve_tx_ring *tx)
int gve_clean_tx_done_dqo(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx = block->tx;
struct gve_tx_ring *tx;
struct gve_tx_ring *tx = block->tx;
gve_free_pending_packet(struct gve_tx_ring *tx,
int gve_xdp_xmit_one_dqo(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx;
static bool gve_has_free_tx_qpl_bufs(struct gve_tx_ring *tx, int count)
static void gve_tx_clean_pending_packets(struct gve_tx_ring *tx)
struct gve_tx_ring *tx = &priv->tx[idx];
static void gve_tx_free_ring_dqo(struct gve_priv *priv, struct gve_tx_ring *tx,
static int gve_tx_qpl_buf_init(struct gve_tx_ring *tx)
struct gve_tx_ring *tx = &priv->tx[idx];
struct gve_tx_ring *tx,
struct gve_tx_ring *tx = cfg->tx;
tx = kvzalloc_objs(struct gve_tx_ring, cfg->qcfg->max_queues);
gve_alloc_tx_qpl_buf(struct gve_tx_ring *tx)
struct gve_tx_ring *tx = cfg->tx;
static u32 num_avail_tx_slots(const struct gve_tx_ring *tx)
static bool gve_has_tx_slots_available(struct gve_tx_ring *tx, u32 slots_req)
static bool gve_has_avail_slots_tx_dqo(struct gve_tx_ring *tx,
static int gve_maybe_stop_tx_dqo(struct gve_tx_ring *tx,
static void gve_tx_fill_pkt_desc_dqo(struct gve_tx_ring *tx, u32 *desc_idx,
static void gve_tx_update_tail(struct gve_tx_ring *tx, u32 desc_idx)
static int gve_tx_add_skb_no_copy_dqo(struct gve_tx_ring *tx,
gve_free_tx_qpl_bufs(struct gve_tx_ring *tx,
static void gve_tx_buf_get_addr(struct gve_tx_ring *tx,
static int gve_tx_add_skb_copy_dqo(struct gve_tx_ring *tx,
static int gve_tx_add_skb_dqo(struct gve_tx_ring *tx,
static int gve_try_tx_skb(struct gve_priv *priv, struct gve_tx_ring *tx,
struct gve_tx_ring *tx = &priv->tx[queue_idx];