1 /* SPDX-License-Identifier: GPL-2.0+ */
2 // Copyright (c) 2021 Hisilicon Limited.
3 
4 #ifndef __HNS3_ETHTOOL_H
5 #define __HNS3_ETHTOOL_H
6 
7 #include <linux/ethtool.h>
8 #include <linux/netdevice.h>
9 
10 struct hns3_stats {
11 	char stats_string[ETH_GSTRING_LEN];
12 	int stats_offset;
13 };
14 
15 struct hns3_sfp_type {
16 	u8 type;
17 	u8 ext_type;
18 };
19 
20 struct hns3_pflag_desc {
21 	char name[ETH_GSTRING_LEN];
22 	void (*handler)(struct net_device *netdev, bool enable);
23 };
24 
25 struct hns3_ethtool_link_ext_state_mapping {
26 	u32 status_code;
27 	enum ethtool_link_ext_state link_ext_state;
28 	u8 link_ext_substate;
29 };
30 
31 struct hns3_ring_param {
32 	u32 tx_desc_num;
33 	u32 rx_desc_num;
34 	u32 rx_buf_len;
35 };
36 
37 #endif
38