xref: /linux/drivers/net/ethernet/intel/idpf/xsk.h (revision 8ff6d62261a3d9a522e4bc90e27a2f6b745a22c4)
13d57b2c0SMichal Kubiak /* SPDX-License-Identifier: GPL-2.0-only */
23d57b2c0SMichal Kubiak /* Copyright (C) 2025 Intel Corporation */
33d57b2c0SMichal Kubiak 
43d57b2c0SMichal Kubiak #ifndef _IDPF_XSK_H_
53d57b2c0SMichal Kubiak #define _IDPF_XSK_H_
63d57b2c0SMichal Kubiak 
73d57b2c0SMichal Kubiak #include <linux/types.h>
83d57b2c0SMichal Kubiak 
9*8ff6d622SAlexander Lobakin enum virtchnl2_queue_type;
10*8ff6d622SAlexander Lobakin struct idpf_tx_queue;
113d57b2c0SMichal Kubiak struct idpf_vport;
123d57b2c0SMichal Kubiak struct netdev_bpf;
133d57b2c0SMichal Kubiak 
14*8ff6d622SAlexander Lobakin void idpf_xsk_setup_queue(const struct idpf_vport *vport, void *q,
15*8ff6d622SAlexander Lobakin 			  enum virtchnl2_queue_type type);
16*8ff6d622SAlexander Lobakin void idpf_xsk_clear_queue(void *q, enum virtchnl2_queue_type type);
17*8ff6d622SAlexander Lobakin 
18*8ff6d622SAlexander Lobakin void idpf_xsksq_clean(struct idpf_tx_queue *xdpq);
19*8ff6d622SAlexander Lobakin bool idpf_xsk_xmit(struct idpf_tx_queue *xsksq);
20*8ff6d622SAlexander Lobakin 
213d57b2c0SMichal Kubiak int idpf_xsk_pool_setup(struct idpf_vport *vport, struct netdev_bpf *xdp);
223d57b2c0SMichal Kubiak 
233d57b2c0SMichal Kubiak #endif /* !_IDPF_XSK_H_ */
24