1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright(c) 2018 Intel Corporation. */ 3 4 #ifndef _I40E_XSK_H_ 5 #define _I40E_XSK_H_ 6 7 struct i40e_vsi; 8 struct xdp_umem; 9 struct zero_copy_allocator; 10 11 int i40e_queue_pair_disable(struct i40e_vsi *vsi, int queue_pair); 12 int i40e_queue_pair_enable(struct i40e_vsi *vsi, int queue_pair); 13 int i40e_xsk_umem_query(struct i40e_vsi *vsi, struct xdp_umem **umem, 14 u16 qid); 15 int i40e_xsk_umem_setup(struct i40e_vsi *vsi, struct xdp_umem *umem, 16 u16 qid); 17 void i40e_zca_free(struct zero_copy_allocator *alloc, unsigned long handle); 18 bool i40e_alloc_rx_buffers_zc(struct i40e_ring *rx_ring, u16 cleaned_count); 19 int i40e_clean_rx_irq_zc(struct i40e_ring *rx_ring, int budget); 20 21 bool i40e_clean_xdp_tx_irq(struct i40e_vsi *vsi, 22 struct i40e_ring *tx_ring, int napi_budget); 23 int i40e_xsk_async_xmit(struct net_device *dev, u32 queue_id); 24 25 #endif /* _I40E_XSK_H_ */ 26