#include "cna.h"
#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <linux/ethtool.h>
#include <linux/rtnetlink.h>
#include "bna.h"
#include "bnad.h"
#define BNAD_NUM_TXF_COUNTERS …
#define BNAD_NUM_RXF_COUNTERS …
#define BNAD_NUM_CQ_COUNTERS …
#define BNAD_NUM_RXQ_COUNTERS …
#define BNAD_NUM_TXQ_COUNTERS …
static const char *bnad_net_stats_strings[] = …;
#define BNAD_ETHTOOL_STATS_NUM …
static int
bnad_get_link_ksettings(struct net_device *netdev,
struct ethtool_link_ksettings *cmd)
{ … }
static int
bnad_set_link_ksettings(struct net_device *netdev,
const struct ethtool_link_ksettings *cmd)
{ … }
static void
bnad_get_drvinfo(struct net_device *netdev, struct ethtool_drvinfo *drvinfo)
{ … }
static void
bnad_get_wol(struct net_device *netdev, struct ethtool_wolinfo *wolinfo)
{ … }
static int bnad_get_coalesce(struct net_device *netdev,
struct ethtool_coalesce *coalesce,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int bnad_set_coalesce(struct net_device *netdev,
struct ethtool_coalesce *coalesce,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static void
bnad_get_ringparam(struct net_device *netdev,
struct ethtool_ringparam *ringparam,
struct kernel_ethtool_ringparam *kernel_ringparam,
struct netlink_ext_ack *extack)
{ … }
static int
bnad_set_ringparam(struct net_device *netdev,
struct ethtool_ringparam *ringparam,
struct kernel_ethtool_ringparam *kernel_ringparam,
struct netlink_ext_ack *extack)
{ … }
static void
bnad_get_pauseparam(struct net_device *netdev,
struct ethtool_pauseparam *pauseparam)
{ … }
static int
bnad_set_pauseparam(struct net_device *netdev,
struct ethtool_pauseparam *pauseparam)
{ … }
static void bnad_get_txf_strings(u8 **string, int f_num)
{ … }
static void bnad_get_rxf_strings(u8 **string, int f_num)
{ … }
static void bnad_get_cq_strings(u8 **string, int q_num)
{ … }
static void bnad_get_rxq_strings(u8 **string, int q_num)
{ … }
static void bnad_get_txq_strings(u8 **string, int q_num)
{ … }
static void
bnad_get_strings(struct net_device *netdev, u32 stringset, u8 *string)
{ … }
static int
bnad_get_stats_count_locked(struct net_device *netdev)
{ … }
static int
bnad_per_q_stats_fill(struct bnad *bnad, u64 *buf, int bi)
{ … }
static void
bnad_get_ethtool_stats(struct net_device *netdev, struct ethtool_stats *stats,
u64 *buf)
{ … }
static int
bnad_get_sset_count(struct net_device *netdev, int sset)
{ … }
static u32
bnad_get_flash_partition_by_offset(struct bnad *bnad, u32 offset,
u32 *base_offset)
{ … }
static int
bnad_get_eeprom_len(struct net_device *netdev)
{ … }
static int
bnad_get_eeprom(struct net_device *netdev, struct ethtool_eeprom *eeprom,
u8 *bytes)
{ … }
static int
bnad_set_eeprom(struct net_device *netdev, struct ethtool_eeprom *eeprom,
u8 *bytes)
{ … }
static int
bnad_flash_device(struct net_device *netdev, struct ethtool_flash *eflash)
{ … }
static const struct ethtool_ops bnad_ethtool_ops = …;
void
bnad_set_ethtool_ops(struct net_device *netdev)
{ … }