#include <linux/ethtool.h>
#include <linux/kernel.h>
#include <linux/netdevice.h>
#include "dwc-xlgmac.h"
#include "dwc-xlgmac-reg.h"
struct xlgmac_stats_desc { … };
#define XLGMAC_STAT(str, var) …
static const struct xlgmac_stats_desc xlgmac_gstring_stats[] = …;
#define XLGMAC_STATS_COUNT …
static void xlgmac_ethtool_get_drvinfo(struct net_device *netdev,
struct ethtool_drvinfo *drvinfo)
{ … }
static u32 xlgmac_ethtool_get_msglevel(struct net_device *netdev)
{ … }
static void xlgmac_ethtool_set_msglevel(struct net_device *netdev,
u32 msglevel)
{ … }
static void xlgmac_ethtool_get_channels(struct net_device *netdev,
struct ethtool_channels *channel)
{ … }
static int
xlgmac_ethtool_get_coalesce(struct net_device *netdev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int
xlgmac_ethtool_set_coalesce(struct net_device *netdev,
struct ethtool_coalesce *ec,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static void xlgmac_ethtool_get_strings(struct net_device *netdev,
u32 stringset, u8 *data)
{ … }
static int xlgmac_ethtool_get_sset_count(struct net_device *netdev,
int stringset)
{ … }
static void xlgmac_ethtool_get_ethtool_stats(struct net_device *netdev,
struct ethtool_stats *stats,
u64 *data)
{ … }
static const struct ethtool_ops xlgmac_ethtool_ops = …;
const struct ethtool_ops *xlgmac_get_ethtool_ops(void)
{ … }