Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 
0003 #ifndef _ETHTOOL_COMMON_H
0004 #define _ETHTOOL_COMMON_H
0005 
0006 #include <linux/netdevice.h>
0007 #include <linux/ethtool.h>
0008 
0009 #define ETHTOOL_DEV_FEATURE_WORDS   DIV_ROUND_UP(NETDEV_FEATURE_COUNT, 32)
0010 
0011 /* compose link mode index from speed, type and duplex */
0012 #define ETHTOOL_LINK_MODE(speed, type, duplex) \
0013     ETHTOOL_LINK_MODE_ ## speed ## base ## type ## _ ## duplex ## _BIT
0014 
0015 #define __SOF_TIMESTAMPING_CNT (const_ilog2(SOF_TIMESTAMPING_LAST) + 1)
0016 
0017 struct link_mode_info {
0018     int             speed;
0019     u8              lanes;
0020     u8              duplex;
0021 };
0022 
0023 extern const char
0024 netdev_features_strings[NETDEV_FEATURE_COUNT][ETH_GSTRING_LEN];
0025 extern const char
0026 rss_hash_func_strings[ETH_RSS_HASH_FUNCS_COUNT][ETH_GSTRING_LEN];
0027 extern const char
0028 tunable_strings[__ETHTOOL_TUNABLE_COUNT][ETH_GSTRING_LEN];
0029 extern const char
0030 phy_tunable_strings[__ETHTOOL_PHY_TUNABLE_COUNT][ETH_GSTRING_LEN];
0031 extern const char link_mode_names[][ETH_GSTRING_LEN];
0032 extern const struct link_mode_info link_mode_params[];
0033 extern const char netif_msg_class_names[][ETH_GSTRING_LEN];
0034 extern const char wol_mode_names[][ETH_GSTRING_LEN];
0035 extern const char sof_timestamping_names[][ETH_GSTRING_LEN];
0036 extern const char ts_tx_type_names[][ETH_GSTRING_LEN];
0037 extern const char ts_rx_filter_names[][ETH_GSTRING_LEN];
0038 extern const char udp_tunnel_type_names[][ETH_GSTRING_LEN];
0039 
0040 int __ethtool_get_link(struct net_device *dev);
0041 
0042 bool convert_legacy_settings_to_link_ksettings(
0043     struct ethtool_link_ksettings *link_ksettings,
0044     const struct ethtool_cmd *legacy_settings);
0045 int ethtool_get_max_rxfh_channel(struct net_device *dev, u32 *max);
0046 int __ethtool_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info);
0047 
0048 extern const struct ethtool_phy_ops *ethtool_phy_ops;
0049 
0050 int ethtool_get_module_info_call(struct net_device *dev,
0051                  struct ethtool_modinfo *modinfo);
0052 int ethtool_get_module_eeprom_call(struct net_device *dev,
0053                    struct ethtool_eeprom *ee, u8 *data);
0054 
0055 #endif /* _ETHTOOL_COMMON_H */