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