| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* Copyright (C) 2025 Intel Corporation */ | |
| #ifndef __LIBETH_PRIV_H | |
| #define __LIBETH_PRIV_H | |
| #include <linux/types.h> | |
| /* 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 */ |