linux/tools/include/uapi/linux/ethtool.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
   2/*
   3 * ethtool.h: Defines for Linux ethtool.
   4 *
   5 * Copyright (C) 1998 David S. Miller (davem@redhat.com)
   6 * Copyright 2001 Jeff Garzik <jgarzik@pobox.com>
   7 * Portions Copyright 2001 Sun Microsystems (thockin@sun.com)
   8 * Portions Copyright 2002 Intel (eli.kupermann@intel.com,
   9 *                                christopher.leech@intel.com,
  10 *                                scott.feldman@intel.com)
  11 * Portions Copyright (C) Sun Microsystems 2008
  12 */
  13
  14#ifndef _UAPI_LINUX_ETHTOOL_H
  15#define _UAPI_LINUX_ETHTOOL_H
  16
  17#include <linux/kernel.h>
  18#include <linux/types.h>
  19#include <linux/if_ether.h>
  20
  21#define ETHTOOL_GCHANNELS       0x0000003c /* Get no of channels */
  22
  23/**
  24 * struct ethtool_channels - configuring number of network channel
  25 * @cmd: ETHTOOL_{G,S}CHANNELS
  26 * @max_rx: Read only. Maximum number of receive channel the driver support.
  27 * @max_tx: Read only. Maximum number of transmit channel the driver support.
  28 * @max_other: Read only. Maximum number of other channel the driver support.
  29 * @max_combined: Read only. Maximum number of combined channel the driver
  30 *      support. Set of queues RX, TX or other.
  31 * @rx_count: Valid values are in the range 1 to the max_rx.
  32 * @tx_count: Valid values are in the range 1 to the max_tx.
  33 * @other_count: Valid values are in the range 1 to the max_other.
  34 * @combined_count: Valid values are in the range 1 to the max_combined.
  35 *
  36 * This can be used to configure RX, TX and other channels.
  37 */
  38
  39struct ethtool_channels {
  40        __u32   cmd;
  41        __u32   max_rx;
  42        __u32   max_tx;
  43        __u32   max_other;
  44        __u32   max_combined;
  45        __u32   rx_count;
  46        __u32   tx_count;
  47        __u32   other_count;
  48        __u32   combined_count;
  49};
  50
  51#define ETHTOOL_FWVERS_LEN      32
  52#define ETHTOOL_BUSINFO_LEN     32
  53#define ETHTOOL_EROMVERS_LEN    32
  54
  55/**
  56 * struct ethtool_drvinfo - general driver and device information
  57 * @cmd: Command number = %ETHTOOL_GDRVINFO
  58 * @driver: Driver short name.  This should normally match the name
  59 *      in its bus driver structure (e.g. pci_driver::name).  Must
  60 *      not be an empty string.
  61 * @version: Driver version string; may be an empty string
  62 * @fw_version: Firmware version string; may be an empty string
  63 * @erom_version: Expansion ROM version string; may be an empty string
  64 * @bus_info: Device bus address.  This should match the dev_name()
  65 *      string for the underlying bus device, if there is one.  May be
  66 *      an empty string.
  67 * @reserved2: Reserved for future use; see the note on reserved space.
  68 * @n_priv_flags: Number of flags valid for %ETHTOOL_GPFLAGS and
  69 *      %ETHTOOL_SPFLAGS commands; also the number of strings in the
  70 *      %ETH_SS_PRIV_FLAGS set
  71 * @n_stats: Number of u64 statistics returned by the %ETHTOOL_GSTATS
  72 *      command; also the number of strings in the %ETH_SS_STATS set
  73 * @testinfo_len: Number of results returned by the %ETHTOOL_TEST
  74 *      command; also the number of strings in the %ETH_SS_TEST set
  75 * @eedump_len: Size of EEPROM accessible through the %ETHTOOL_GEEPROM
  76 *      and %ETHTOOL_SEEPROM commands, in bytes
  77 * @regdump_len: Size of register dump returned by the %ETHTOOL_GREGS
  78 *      command, in bytes
  79 *
  80 * Users can use the %ETHTOOL_GSSET_INFO command to get the number of
  81 * strings in any string set (from Linux 2.6.34).
  82 *
  83 * Drivers should set at most @driver, @version, @fw_version and
  84 * @bus_info in their get_drvinfo() implementation.  The ethtool
  85 * core fills in the other fields using other driver operations.
  86 */
  87struct ethtool_drvinfo {
  88        __u32   cmd;
  89        char    driver[32];
  90        char    version[32];
  91        char    fw_version[ETHTOOL_FWVERS_LEN];
  92        char    bus_info[ETHTOOL_BUSINFO_LEN];
  93        char    erom_version[ETHTOOL_EROMVERS_LEN];
  94        char    reserved2[12];
  95        __u32   n_priv_flags;
  96        __u32   n_stats;
  97        __u32   testinfo_len;
  98        __u32   eedump_len;
  99        __u32   regdump_len;
 100};
 101
 102#define ETHTOOL_GDRVINFO        0x00000003
 103
 104#endif /* _UAPI_LINUX_ETHTOOL_H */
 105