162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0+ */ 262306a36Sopenharmony_ci// Copyright (c) 2021 Hisilicon Limited. 362306a36Sopenharmony_ci 462306a36Sopenharmony_ci#ifndef __HNS3_ETHTOOL_H 562306a36Sopenharmony_ci#define __HNS3_ETHTOOL_H 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/ethtool.h> 862306a36Sopenharmony_ci#include <linux/netdevice.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_cistruct hns3_stats { 1162306a36Sopenharmony_ci char stats_string[ETH_GSTRING_LEN]; 1262306a36Sopenharmony_ci int stats_offset; 1362306a36Sopenharmony_ci}; 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_cistruct hns3_sfp_type { 1662306a36Sopenharmony_ci u8 type; 1762306a36Sopenharmony_ci u8 ext_type; 1862306a36Sopenharmony_ci}; 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_cistruct hns3_pflag_desc { 2162306a36Sopenharmony_ci char name[ETH_GSTRING_LEN]; 2262306a36Sopenharmony_ci void (*handler)(struct net_device *netdev, bool enable); 2362306a36Sopenharmony_ci}; 2462306a36Sopenharmony_ci 2562306a36Sopenharmony_cistruct hns3_ethtool_link_ext_state_mapping { 2662306a36Sopenharmony_ci u32 status_code; 2762306a36Sopenharmony_ci enum ethtool_link_ext_state link_ext_state; 2862306a36Sopenharmony_ci u8 link_ext_substate; 2962306a36Sopenharmony_ci}; 3062306a36Sopenharmony_ci 3162306a36Sopenharmony_cistruct hns3_ring_param { 3262306a36Sopenharmony_ci u32 tx_desc_num; 3362306a36Sopenharmony_ci u32 rx_desc_num; 3462306a36Sopenharmony_ci u32 rx_buf_len; 3562306a36Sopenharmony_ci}; 3662306a36Sopenharmony_ci 3762306a36Sopenharmony_ci#endif 38