xref: /linux/drivers/net/ethernet/intel/libeth/priv.h (revision 26ce8eb0bb7d47c5fb36f7c12f34e4a320f14cac)
1*26ce8eb0SAlexander Lobakin /* SPDX-License-Identifier: GPL-2.0-only */
2*26ce8eb0SAlexander Lobakin /* Copyright (C) 2025 Intel Corporation */
3*26ce8eb0SAlexander Lobakin 
4*26ce8eb0SAlexander Lobakin #ifndef __LIBETH_PRIV_H
5*26ce8eb0SAlexander Lobakin #define __LIBETH_PRIV_H
6*26ce8eb0SAlexander Lobakin 
7*26ce8eb0SAlexander Lobakin #include <linux/types.h>
8*26ce8eb0SAlexander Lobakin 
9*26ce8eb0SAlexander Lobakin /* XDP */
10*26ce8eb0SAlexander Lobakin 
11*26ce8eb0SAlexander Lobakin struct skb_shared_info;
12*26ce8eb0SAlexander Lobakin struct xdp_frame_bulk;
13*26ce8eb0SAlexander Lobakin 
14*26ce8eb0SAlexander Lobakin struct libeth_xdp_ops {
15*26ce8eb0SAlexander Lobakin 	void	(*bulk)(const struct skb_shared_info *sinfo,
16*26ce8eb0SAlexander Lobakin 			struct xdp_frame_bulk *bq, bool frags);
17*26ce8eb0SAlexander Lobakin };
18*26ce8eb0SAlexander Lobakin 
19*26ce8eb0SAlexander Lobakin void libeth_attach_xdp(const struct libeth_xdp_ops *ops);
20*26ce8eb0SAlexander Lobakin 
21*26ce8eb0SAlexander Lobakin static inline void libeth_detach_xdp(void)
22*26ce8eb0SAlexander Lobakin {
23*26ce8eb0SAlexander Lobakin 	libeth_attach_xdp(NULL);
24*26ce8eb0SAlexander Lobakin }
25*26ce8eb0SAlexander Lobakin 
26*26ce8eb0SAlexander Lobakin #endif /* __LIBETH_PRIV_H */
27