/* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (C) 2025 Intel Corporation */ #ifndef _IDPF_XSK_H_ #define _IDPF_XSK_H_ #include enum virtchnl2_queue_type; struct idpf_buf_queue; struct idpf_q_vector; struct idpf_rx_queue; struct idpf_tx_queue; struct idpf_vport; struct net_device; struct netdev_bpf; void idpf_xsk_setup_queue(const struct idpf_vport *vport, void *q, enum virtchnl2_queue_type type); void idpf_xsk_clear_queue(void *q, enum virtchnl2_queue_type type); void idpf_xsk_init_wakeup(struct idpf_q_vector *qv); int idpf_xskfq_init(struct idpf_buf_queue *bufq); void idpf_xskfq_rel(struct idpf_buf_queue *bufq); void idpf_xsksq_clean(struct idpf_tx_queue *xdpq); int idpf_xskrq_poll(struct idpf_rx_queue *rxq, u32 budget); bool idpf_xsk_xmit(struct idpf_tx_queue *xsksq); int idpf_xsk_pool_setup(struct idpf_vport *vport, struct netdev_bpf *xdp); int idpf_xsk_wakeup(struct net_device *dev, u32 qid, u32 flags); #endif /* !_IDPF_XSK_H_ */