Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only */
0002 /****************************************************************************
0003  * Driver for Solarflare network controllers and boards
0004  * Copyright 2019 Solarflare Communications Inc.
0005  *
0006  * This program is free software; you can redistribute it and/or modify it
0007  * under the terms of the GNU General Public License version 2 as published
0008  * by the Free Software Foundation, incorporated herein by reference.
0009  */
0010 
0011 #ifndef EFX_ETHTOOL_COMMON_H
0012 #define EFX_ETHTOOL_COMMON_H
0013 
0014 void efx_ethtool_get_drvinfo(struct net_device *net_dev,
0015                  struct ethtool_drvinfo *info);
0016 u32 efx_ethtool_get_msglevel(struct net_device *net_dev);
0017 void efx_ethtool_set_msglevel(struct net_device *net_dev, u32 msg_enable);
0018 void efx_ethtool_self_test(struct net_device *net_dev,
0019                struct ethtool_test *test, u64 *data);
0020 void efx_ethtool_get_pauseparam(struct net_device *net_dev,
0021                 struct ethtool_pauseparam *pause);
0022 int efx_ethtool_set_pauseparam(struct net_device *net_dev,
0023                    struct ethtool_pauseparam *pause);
0024 int efx_ethtool_fill_self_tests(struct efx_nic *efx,
0025                 struct efx_self_tests *tests,
0026                 u8 *strings, u64 *data);
0027 int efx_ethtool_get_sset_count(struct net_device *net_dev, int string_set);
0028 void efx_ethtool_get_strings(struct net_device *net_dev, u32 string_set,
0029                  u8 *strings);
0030 void efx_ethtool_get_stats(struct net_device *net_dev,
0031                struct ethtool_stats *stats __attribute__ ((unused)),
0032                u64 *data);
0033 int efx_ethtool_get_link_ksettings(struct net_device *net_dev,
0034                    struct ethtool_link_ksettings *out);
0035 int efx_ethtool_set_link_ksettings(struct net_device *net_dev,
0036                    const struct ethtool_link_ksettings *settings);
0037 int efx_ethtool_get_fecparam(struct net_device *net_dev,
0038                  struct ethtool_fecparam *fecparam);
0039 int efx_ethtool_set_fecparam(struct net_device *net_dev,
0040                  struct ethtool_fecparam *fecparam);
0041 int efx_ethtool_get_rxnfc(struct net_device *net_dev,
0042               struct ethtool_rxnfc *info, u32 *rule_locs);
0043 int efx_ethtool_set_rxnfc(struct net_device *net_dev,
0044               struct ethtool_rxnfc *info);
0045 u32 efx_ethtool_get_rxfh_indir_size(struct net_device *net_dev);
0046 u32 efx_ethtool_get_rxfh_key_size(struct net_device *net_dev);
0047 int efx_ethtool_get_rxfh(struct net_device *net_dev, u32 *indir, u8 *key,
0048              u8 *hfunc);
0049 int efx_ethtool_set_rxfh(struct net_device *net_dev,
0050              const u32 *indir, const u8 *key, const u8 hfunc);
0051 int efx_ethtool_get_rxfh_context(struct net_device *net_dev, u32 *indir,
0052                  u8 *key, u8 *hfunc, u32 rss_context);
0053 int efx_ethtool_set_rxfh_context(struct net_device *net_dev,
0054                  const u32 *indir, const u8 *key,
0055                  const u8 hfunc, u32 *rss_context,
0056                  bool delete);
0057 int efx_ethtool_reset(struct net_device *net_dev, u32 *flags);
0058 int efx_ethtool_get_module_eeprom(struct net_device *net_dev,
0059                   struct ethtool_eeprom *ee,
0060                   u8 *data);
0061 int efx_ethtool_get_module_info(struct net_device *net_dev,
0062                 struct ethtool_modinfo *modinfo);
0063 #endif