brintos

brintos / linux-shallow public Read only

0
0
Text · 2.4 KiB · 45adeb5 Raw
88 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2/* Copyright (c) 2019, Intel Corporation. */3 4#ifndef _ICE_XSK_H_5#define _ICE_XSK_H_6#include "ice_txrx.h"7 8#define PKTS_PER_BATCH 89 10#ifdef __clang__11#define loop_unrolled_for _Pragma("clang loop unroll_count(8)") for12#elif __GNUC__ >= 813#define loop_unrolled_for _Pragma("GCC unroll 8") for14#else15#define loop_unrolled_for for16#endif17 18struct ice_vsi;19 20#ifdef CONFIG_XDP_SOCKETS21int ice_xsk_pool_setup(struct ice_vsi *vsi, struct xsk_buff_pool *pool,22		       u16 qid);23int ice_clean_rx_irq_zc(struct ice_rx_ring *rx_ring,24			struct xsk_buff_pool *xsk_pool,25			int budget);26int ice_xsk_wakeup(struct net_device *netdev, u32 queue_id, u32 flags);27bool ice_alloc_rx_bufs_zc(struct ice_rx_ring *rx_ring,28			  struct xsk_buff_pool *xsk_pool, u16 count);29bool ice_xsk_any_rx_ring_ena(struct ice_vsi *vsi);30void ice_xsk_clean_rx_ring(struct ice_rx_ring *rx_ring);31void ice_xsk_clean_xdp_ring(struct ice_tx_ring *xdp_ring);32bool ice_xmit_zc(struct ice_tx_ring *xdp_ring, struct xsk_buff_pool *xsk_pool);33int ice_realloc_zc_buf(struct ice_vsi *vsi, bool zc);34#else35static inline bool ice_xmit_zc(struct ice_tx_ring __always_unused *xdp_ring,36			       struct xsk_buff_pool __always_unused *xsk_pool)37{38	return false;39}40 41static inline int42ice_xsk_pool_setup(struct ice_vsi __always_unused *vsi,43		   struct xsk_buff_pool __always_unused *pool,44		   u16 __always_unused qid)45{46	return -EOPNOTSUPP;47}48 49static inline int50ice_clean_rx_irq_zc(struct ice_rx_ring __always_unused *rx_ring,51		    struct xsk_buff_pool __always_unused *xsk_pool,52		    int __always_unused budget)53{54	return 0;55}56 57static inline bool58ice_alloc_rx_bufs_zc(struct ice_rx_ring __always_unused *rx_ring,59		     struct xsk_buff_pool __always_unused *xsk_pool,60		     u16 __always_unused count)61{62	return false;63}64 65static inline bool ice_xsk_any_rx_ring_ena(struct ice_vsi __always_unused *vsi)66{67	return false;68}69 70static inline int71ice_xsk_wakeup(struct net_device __always_unused *netdev,72	       u32 __always_unused queue_id, u32 __always_unused flags)73{74	return -EOPNOTSUPP;75}76 77static inline void ice_xsk_clean_rx_ring(struct ice_rx_ring *rx_ring) { }78static inline void ice_xsk_clean_xdp_ring(struct ice_tx_ring *xdp_ring) { }79 80static inline int81ice_realloc_zc_buf(struct ice_vsi __always_unused *vsi,82		   bool __always_unused zc)83{84	return 0;85}86#endif /* CONFIG_XDP_SOCKETS */87#endif /* !_ICE_XSK_H_ */88