#include <linux/ethtool.h>
#include <linux/vmalloc.h>
#include "fm10k.h"
struct fm10k_stats { … };
#define FM10K_STAT_FIELDS(_type, _name, _stat) …
#define FM10K_NETDEV_STAT(_net_stat) …
static const struct fm10k_stats fm10k_gstrings_net_stats[] = …;
#define FM10K_NETDEV_STATS_LEN …
#define FM10K_STAT(_name, _stat) …
static const struct fm10k_stats fm10k_gstrings_global_stats[] = …;
static const struct fm10k_stats fm10k_gstrings_pf_stats[] = …;
#define FM10K_MBX_STAT(_name, _stat) …
static const struct fm10k_stats fm10k_gstrings_mbx_stats[] = …;
#define FM10K_QUEUE_STAT(_name, _stat) …
static const struct fm10k_stats fm10k_gstrings_queue_stats[] = …;
#define FM10K_GLOBAL_STATS_LEN …
#define FM10K_PF_STATS_LEN …
#define FM10K_MBX_STATS_LEN …
#define FM10K_QUEUE_STATS_LEN …
#define FM10K_STATIC_STATS_LEN …
static const char fm10k_gstrings_test[][ETH_GSTRING_LEN] = …;
#define FM10K_TEST_LEN …
enum fm10k_self_test_types { … };
enum { … };
static const char fm10k_prv_flags[FM10K_PRV_FLAG_LEN][ETH_GSTRING_LEN] = …;
static void __fm10k_add_stat_strings(u8 **p, const struct fm10k_stats stats[],
const unsigned int size, ...)
{ … }
#define fm10k_add_stat_strings(p, stats, ...) …
static void fm10k_get_stat_strings(struct net_device *dev, u8 *data)
{ … }
static void fm10k_get_strings(struct net_device *dev,
u32 stringset, u8 *data)
{ … }
static int fm10k_get_sset_count(struct net_device *dev, int sset)
{ … }
static void __fm10k_add_ethtool_stats(u64 **data, void *pointer,
const struct fm10k_stats stats[],
const unsigned int size)
{ … }
#define fm10k_add_ethtool_stats(data, pointer, stats) …
static void fm10k_get_ethtool_stats(struct net_device *netdev,
struct ethtool_stats __always_unused *stats,
u64 *data)
{ … }
#define FM10K_REGS_LEN_Q …
static void fm10k_get_reg_q(struct fm10k_hw *hw, u32 *buff, int i)
{ … }
#define FM10K_REGS_LEN_VSI …
static void fm10k_get_reg_vsi(struct fm10k_hw *hw, u32 *buff, int i)
{ … }
static void fm10k_get_regs(struct net_device *netdev,
struct ethtool_regs *regs, void *p)
{ … }
#define FM10K_REGS_LEN_PF …
#define FM10K_REGS_LEN_VF …
static int fm10k_get_regs_len(struct net_device *netdev)
{ … }
static void fm10k_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
{ … }
static void fm10k_get_pauseparam(struct net_device *dev,
struct ethtool_pauseparam *pause)
{ … }
static int fm10k_set_pauseparam(struct net_device *dev,
struct ethtool_pauseparam *pause)
{ … }
static u32 fm10k_get_msglevel(struct net_device *netdev)
{ … }
static void fm10k_set_msglevel(struct net_device *netdev, u32 data)
{ … }
static void fm10k_get_ringparam(struct net_device *netdev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static int fm10k_set_ringparam(struct net_device *netdev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static int fm10k_get_coalesce(struct net_device *dev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int fm10k_set_coalesce(struct net_device *dev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int fm10k_get_rss_hash_opts(struct fm10k_intfc *interface,
struct ethtool_rxnfc *cmd)
{ … }
static int fm10k_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd,
u32 __always_unused *rule_locs)
{ … }
static int fm10k_set_rss_hash_opt(struct fm10k_intfc *interface,
struct ethtool_rxnfc *nfc)
{ … }
static int fm10k_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
{ … }
static int fm10k_mbx_test(struct fm10k_intfc *interface, u64 *data)
{ … }
static void fm10k_self_test(struct net_device *dev,
struct ethtool_test *eth_test, u64 *data)
{ … }
static u32 fm10k_get_priv_flags(struct net_device *netdev)
{ … }
static int fm10k_set_priv_flags(struct net_device *netdev, u32 priv_flags)
{ … }
static u32 fm10k_get_reta_size(struct net_device __always_unused *netdev)
{ … }
void fm10k_write_reta(struct fm10k_intfc *interface, const u32 *indir)
{ … }
static int fm10k_get_reta(struct net_device *netdev, u32 *indir)
{ … }
static int fm10k_set_reta(struct net_device *netdev, const u32 *indir)
{ … }
static u32 fm10k_get_rssrk_size(struct net_device __always_unused *netdev)
{ … }
static int fm10k_get_rssh(struct net_device *netdev,
struct ethtool_rxfh_param *rxfh)
{ … }
static int fm10k_set_rssh(struct net_device *netdev,
struct ethtool_rxfh_param *rxfh,
struct netlink_ext_ack *extack)
{ … }
static unsigned int fm10k_max_channels(struct net_device *dev)
{ … }
static void fm10k_get_channels(struct net_device *dev,
struct ethtool_channels *ch)
{ … }
static int fm10k_set_channels(struct net_device *dev,
struct ethtool_channels *ch)
{ … }
static const struct ethtool_ops fm10k_ethtool_ops = …;
void fm10k_set_ethtool_ops(struct net_device *dev)
{ … }