/* SPDX-License-Identifier: GPL-2.0-only */ /* Copyright (C) 2025 Intel Corporation */ #ifndef __LIBETH_PRIV_H #define __LIBETH_PRIV_H #include /* XDP */ enum xdp_action; struct libeth_xdp_buff; struct libeth_xdp_tx_frame; struct skb_shared_info; struct xdp_frame_bulk; extern const struct xsk_tx_metadata_ops libeth_xsktmo_slow; void libeth_xsk_tx_return_bulk(const struct libeth_xdp_tx_frame *bq, u32 count); u32 libeth_xsk_prog_exception(struct libeth_xdp_buff *xdp, enum xdp_action act, int ret); struct libeth_xdp_ops { void (*bulk)(const struct skb_shared_info *sinfo, struct xdp_frame_bulk *bq, bool frags); void (*xsk)(struct libeth_xdp_buff *xdp); }; void libeth_attach_xdp(const struct libeth_xdp_ops *ops); static inline void libeth_detach_xdp(void) { libeth_attach_xdp(NULL); } #endif /* __LIBETH_PRIV_H */