#include <linux/ethtool.h>
#include <linux/phy.h>
#include "emac.h"
static const char * const emac_ethtool_stat_strings[] = …;
#define EMAC_STATS_LEN …
static u32 emac_get_msglevel(struct net_device *netdev)
{ … }
static void emac_set_msglevel(struct net_device *netdev, u32 data)
{ … }
static int emac_get_sset_count(struct net_device *netdev, int sset)
{ … }
static void emac_get_strings(struct net_device *netdev, u32 stringset, u8 *data)
{ … }
static void emac_get_ethtool_stats(struct net_device *netdev,
struct ethtool_stats *stats,
u64 *data)
{ … }
static int emac_nway_reset(struct net_device *netdev)
{ … }
static void emac_get_ringparam(struct net_device *netdev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static int emac_set_ringparam(struct net_device *netdev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static void emac_get_pauseparam(struct net_device *netdev,
struct ethtool_pauseparam *pause)
{ … }
static int emac_set_pauseparam(struct net_device *netdev,
struct ethtool_pauseparam *pause)
{ … }
static const u16 emac_regs[] = …;
#define EMAC_REGS_VERSION …
#define EMAC_MAX_REG_SIZE …
static void emac_get_regs(struct net_device *netdev,
struct ethtool_regs *regs, void *buff)
{ … }
static int emac_get_regs_len(struct net_device *netdev)
{ … }
#define EMAC_PRIV_ENABLE_SINGLE_PAUSE …
static int emac_set_priv_flags(struct net_device *netdev, u32 flags)
{ … }
static u32 emac_get_priv_flags(struct net_device *netdev)
{ … }
static const struct ethtool_ops emac_ethtool_ops = …;
void emac_set_ethtool_ops(struct net_device *netdev)
{ … }