/* SPDX-License-Identifier: GPL-2.0+ */
// Copyright (c) 2021 Hisilicon Limited.

#ifndef __HNS3_ETHTOOL_H
#define __HNS3_ETHTOOL_H

#include <linux/ethtool.h>
#include <linux/netdevice.h>

struct hns3_stats {
	char stats_string[ETH_GSTRING_LEN];
	int stats_offset;
};

struct hns3_sfp_type {
	u8 type;
	u8 ext_type;
};

struct hns3_pflag_desc {
	char name[ETH_GSTRING_LEN];
	void (*handler)(struct net_device *netdev, bool enable);
};

struct hns3_ethtool_link_ext_state_mapping {
	u32 status_code;
	enum ethtool_link_ext_state link_ext_state;
	u8 link_ext_substate;
};

struct hns3_ring_param {
	u32 tx_desc_num;
	u32 rx_desc_num;
	u32 rx_buf_len;
};

#endif