#include <linux/net_tstamp.h>
#include <linux/nospec.h>
#include "dpni.h"
#include "dpaa2-eth.h"
static char dpaa2_ethtool_stats[][ETH_GSTRING_LEN] = …;
#define DPAA2_ETH_NUM_STATS …
static char dpaa2_ethtool_extras[][ETH_GSTRING_LEN] = …;
#define DPAA2_ETH_NUM_EXTRA_STATS …
static void dpaa2_eth_get_drvinfo(struct net_device *net_dev,
struct ethtool_drvinfo *drvinfo)
{ … }
static int dpaa2_eth_nway_reset(struct net_device *net_dev)
{ … }
static int
dpaa2_eth_get_link_ksettings(struct net_device *net_dev,
struct ethtool_link_ksettings *link_settings)
{ … }
static int
dpaa2_eth_set_link_ksettings(struct net_device *net_dev,
const struct ethtool_link_ksettings *link_settings)
{ … }
static void dpaa2_eth_get_pauseparam(struct net_device *net_dev,
struct ethtool_pauseparam *pause)
{ … }
static int dpaa2_eth_set_pauseparam(struct net_device *net_dev,
struct ethtool_pauseparam *pause)
{ … }
static void dpaa2_eth_get_strings(struct net_device *netdev, u32 stringset,
u8 *data)
{ … }
static int dpaa2_eth_get_sset_count(struct net_device *net_dev, int sset)
{ … }
static void dpaa2_eth_get_ethtool_stats(struct net_device *net_dev,
struct ethtool_stats *stats,
u64 *data)
{ … }
static int dpaa2_eth_prep_eth_rule(struct ethhdr *eth_value, struct ethhdr *eth_mask,
void *key, void *mask, u64 *fields)
{ … }
static int dpaa2_eth_prep_uip_rule(struct ethtool_usrip4_spec *uip_value,
struct ethtool_usrip4_spec *uip_mask,
void *key, void *mask, u64 *fields)
{ … }
static int dpaa2_eth_prep_l4_rule(struct ethtool_tcpip4_spec *l4_value,
struct ethtool_tcpip4_spec *l4_mask,
void *key, void *mask, u8 l4_proto, u64 *fields)
{ … }
static int dpaa2_eth_prep_ext_rule(struct ethtool_flow_ext *ext_value,
struct ethtool_flow_ext *ext_mask,
void *key, void *mask, u64 *fields)
{ … }
static int dpaa2_eth_prep_mac_ext_rule(struct ethtool_flow_ext *ext_value,
struct ethtool_flow_ext *ext_mask,
void *key, void *mask, u64 *fields)
{ … }
static int dpaa2_eth_prep_cls_rule(struct ethtool_rx_flow_spec *fs, void *key,
void *mask, u64 *fields)
{ … }
static int dpaa2_eth_do_cls_rule(struct net_device *net_dev,
struct ethtool_rx_flow_spec *fs,
bool add)
{ … }
static int dpaa2_eth_num_cls_rules(struct dpaa2_eth_priv *priv)
{ … }
static int dpaa2_eth_update_cls_rule(struct net_device *net_dev,
struct ethtool_rx_flow_spec *new_fs,
unsigned int location)
{ … }
static int dpaa2_eth_get_rxnfc(struct net_device *net_dev,
struct ethtool_rxnfc *rxnfc, u32 *rule_locs)
{ … }
static int dpaa2_eth_set_rxnfc(struct net_device *net_dev,
struct ethtool_rxnfc *rxnfc)
{ … }
int dpaa2_phc_index = …;
EXPORT_SYMBOL(…);
static int dpaa2_eth_get_ts_info(struct net_device *dev,
struct kernel_ethtool_ts_info *info)
{ … }
static int dpaa2_eth_get_tunable(struct net_device *net_dev,
const struct ethtool_tunable *tuna,
void *data)
{ … }
static int dpaa2_eth_set_tunable(struct net_device *net_dev,
const struct ethtool_tunable *tuna,
const void *data)
{ … }
static int dpaa2_eth_get_coalesce(struct net_device *dev,
struct ethtool_coalesce *ic,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static int dpaa2_eth_set_coalesce(struct net_device *dev,
struct ethtool_coalesce *ic,
struct kernel_ethtool_coalesce *kernel_coal,
struct netlink_ext_ack *extack)
{ … }
static void dpaa2_eth_get_channels(struct net_device *net_dev,
struct ethtool_channels *channels)
{ … }
const struct ethtool_ops dpaa2_ethtool_ops = …;