#include <linux/types.h>
#include <linux/delay.h>
#include <linux/pci.h>
#include <asm/io.h>
#include <linux/netdevice.h>
#include <linux/ethtool.h>
#include "netxen_nic.h"
#include "netxen_nic_hw.h"
struct netxen_nic_stats { … };
#define NETXEN_NIC_STAT(m) …
#define NETXEN_NIC_PORT_WINDOW …
#define NETXEN_NIC_INVALID_DATA …
static const struct netxen_nic_stats netxen_nic_gstrings_stats[] = …;
#define NETXEN_NIC_STATS_LEN …
static const char netxen_nic_gstrings_test[][ETH_GSTRING_LEN] = …;
#define NETXEN_NIC_TEST_LEN …
#define NETXEN_NIC_REGS_COUNT …
#define NETXEN_NIC_REGS_LEN …
#define NETXEN_MAX_EEPROM_LEN …
static int netxen_nic_get_eeprom_len(struct net_device *dev)
{ … }
static void
netxen_nic_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *drvinfo)
{ … }
static int
netxen_nic_get_link_ksettings(struct net_device *dev,
struct ethtool_link_ksettings *cmd)
{ … }
static int
netxen_nic_set_link_ksettings(struct net_device *dev,
const struct ethtool_link_ksettings *cmd)
{ … }
static int netxen_nic_get_regs_len(struct net_device *dev)
{ … }
static void
netxen_nic_get_regs(struct net_device *dev, struct ethtool_regs *regs, void *p)
{ … }
static u32 netxen_nic_test_link(struct net_device *dev)
{ … }
static int
netxen_nic_get_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom,
u8 *bytes)
{ … }
static void
netxen_nic_get_ringparam(struct net_device *dev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static u32
netxen_validate_ringparam(u32 val, u32 min, u32 max, char *r_name)
{ … }
static int
netxen_nic_set_ringparam(struct net_device *dev,
struct ethtool_ringparam *ring,
struct kernel_ethtool_ringparam *kernel_ring,
struct netlink_ext_ack *extack)
{ … }
static void
netxen_nic_get_pauseparam(struct net_device *dev,
struct ethtool_pauseparam *pause)
{ … }
static int
netxen_nic_set_pauseparam(struct net_device *dev,
struct ethtool_pauseparam *pause)
{ … }
static int netxen_nic_reg_test(struct net_device *dev)
{ … }
static int netxen_get_sset_count(struct net_device *dev, int sset)
{ … }
static void
netxen_nic_diag_test(struct net_device *dev, struct ethtool_test *eth_test,
u64 *data)
{ … }
static void
netxen_nic_get_strings(struct net_device *dev, u32 stringset, u8 *data)
{ … }
static void
netxen_nic_get_ethtool_stats(struct net_device *dev,
struct ethtool_stats *stats, u64 *data)
{ … }
static void
netxen_nic_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
{ … }
static int
netxen_nic_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
{ … }
static int netxen_set_intr_coalesce(struct net_device *netdev,
struct ethtool_coalesce *ethcoal,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int netxen_get_intr_coalesce(struct net_device *netdev,
struct ethtool_coalesce *ethcoal,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int
netxen_get_dump_flag(struct net_device *netdev, struct ethtool_dump *dump)
{ … }
static const u32 FW_DUMP_LEVELS[] = …;
static int
netxen_set_dump(struct net_device *netdev, struct ethtool_dump *val)
{ … }
static int
netxen_get_dump_data(struct net_device *netdev, struct ethtool_dump *dump,
void *buffer)
{ … }
const struct ethtool_ops netxen_nic_ethtool_ops = …;