xref: /linux/drivers/net/ethernet/wangxun/libwx/wx_lib.h (revision 0e2b2a76278153d1ac312b0691cb65dabb9aef3e)
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_configure_vectors(struct wx *wx);
25 void wx_clean_all_rx_rings(struct wx *wx);
26 void wx_clean_all_tx_rings(struct wx *wx);
27 void wx_free_resources(struct wx *wx);
28 int wx_setup_resources(struct wx *wx);
29 void wx_get_stats64(struct net_device *netdev,
30 		    struct rtnl_link_stats64 *stats);
31 int wx_set_features(struct net_device *netdev, netdev_features_t features);
32 
33 #endif /* _NGBE_LIB_H_ */
34