2019-12-11 12:58:29 +03:00
/* SPDX-License-Identifier: GPL-2.0-only */
# ifndef _ETHTOOL_COMMON_H
# define _ETHTOOL_COMMON_H
2019-12-27 17:56:23 +03:00
# include <linux/netdevice.h>
2019-12-11 12:58:29 +03:00
# include <linux/ethtool.h>
2020-03-12 23:07:48 +03:00
# define ETHTOOL_DEV_FEATURE_WORDS DIV_ROUND_UP(NETDEV_FEATURE_COUNT, 32)
2019-12-11 12:58:34 +03:00
/* compose link mode index from speed, type and duplex */
# define ETHTOOL_LINK_MODE(speed, type, duplex) \
ETHTOOL_LINK_MODE_ # # speed # # base # # type # # _ # # duplex # # _BIT
2020-03-28 02:01:53 +03:00
# define __SOF_TIMESTAMPING_CNT (const_ilog2(SOF_TIMESTAMPING_LAST) + 1)
2021-02-02 21:06:07 +03:00
struct link_mode_info {
int speed ;
u8 lanes ;
u8 duplex ;
} ;
2019-12-11 12:58:29 +03:00
extern const char
netdev_features_strings [ NETDEV_FEATURE_COUNT ] [ ETH_GSTRING_LEN ] ;
extern const char
rss_hash_func_strings [ ETH_RSS_HASH_FUNCS_COUNT ] [ ETH_GSTRING_LEN ] ;
extern const char
tunable_strings [ __ETHTOOL_TUNABLE_COUNT ] [ ETH_GSTRING_LEN ] ;
extern const char
phy_tunable_strings [ __ETHTOOL_PHY_TUNABLE_COUNT ] [ ETH_GSTRING_LEN ] ;
2019-12-11 12:58:34 +03:00
extern const char link_mode_names [ ] [ ETH_GSTRING_LEN ] ;
2021-02-02 21:06:07 +03:00
extern const struct link_mode_info link_mode_params [ ] ;
2020-01-27 01:11:04 +03:00
extern const char netif_msg_class_names [ ] [ ETH_GSTRING_LEN ] ;
2020-01-27 01:11:13 +03:00
extern const char wol_mode_names [ ] [ ETH_GSTRING_LEN ] ;
2020-03-28 02:01:53 +03:00
extern const char sof_timestamping_names [ ] [ ETH_GSTRING_LEN ] ;
extern const char ts_tx_type_names [ ] [ ETH_GSTRING_LEN ] ;
extern const char ts_rx_filter_names [ ] [ ETH_GSTRING_LEN ] ;
2020-07-10 03:42:47 +03:00
extern const char udp_tunnel_type_names [ ] [ ETH_GSTRING_LEN ] ;
2019-12-11 12:58:29 +03:00
2019-12-27 17:56:23 +03:00
int __ethtool_get_link ( struct net_device * dev ) ;
2019-12-27 17:55:48 +03:00
bool convert_legacy_settings_to_link_ksettings (
struct ethtool_link_ksettings * link_ksettings ,
const struct ethtool_cmd * legacy_settings ) ;
2020-03-12 23:08:43 +03:00
int ethtool_get_max_rxfh_channel ( struct net_device * dev , u32 * max ) ;
2020-03-28 02:01:58 +03:00
int __ethtool_get_ts_info ( struct net_device * dev , struct ethtool_ts_info * info ) ;
2019-12-27 17:55:48 +03:00
2020-07-06 07:27:56 +03:00
extern const struct ethtool_phy_ops * ethtool_phy_ops ;
2019-12-11 12:58:29 +03:00
# endif /* _ETHTOOL_COMMON_H */