1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* 3 * WangXun Gigabit PCI Express Linux driver 4 * Copyright (c) 2019 - 2022 Beijing WangXun Technology Co., Ltd. 5 */ 6 7 #ifndef _WX_LIB_H_ 8 #define _WX_LIB_H_ 9 10 void wx_alloc_rx_buffers(struct wx_ring *rx_ring, u16 cleaned_count); 11 u16 wx_desc_unused(struct wx_ring *ring); 12 netdev_tx_t wx_xmit_frame(struct sk_buff *skb, 13 struct net_device *netdev); 14 void wx_napi_enable_all(struct wx *wx); 15 void wx_napi_disable_all(struct wx *wx); 16 void wx_reset_interrupt_capability(struct wx *wx); 17 void wx_clear_interrupt_scheme(struct wx *wx); 18 int wx_init_interrupt_scheme(struct wx *wx); 19 irqreturn_t wx_msix_clean_rings(int __always_unused irq, void *data); 20 void wx_free_irq(struct wx *wx); 21 int wx_setup_isb_resources(struct wx *wx); 22 void wx_free_isb_resources(struct wx *wx); 23 u32 wx_misc_isb(struct wx *wx, enum wx_isb_idx idx); 24 void wx_write_eitr(struct wx_q_vector *q_vector); 25 void wx_configure_vectors(struct wx *wx); 26 void wx_clean_all_rx_rings(struct wx *wx); 27 void wx_clean_all_tx_rings(struct wx *wx); 28 void wx_free_resources(struct wx *wx); 29 int wx_setup_resources(struct wx *wx); 30 void wx_get_stats64(struct net_device *netdev, 31 struct rtnl_link_stats64 *stats); 32 int wx_set_features(struct net_device *netdev, netdev_features_t features); 33 netdev_features_t wx_fix_features(struct net_device *netdev, 34 netdev_features_t features); 35 void wx_set_ring(struct wx *wx, u32 new_tx_count, 36 u32 new_rx_count, struct wx_ring *temp_ring); 37 38 #endif /* _NGBE_LIB_H_ */ 39