Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
0002 /*
0003  * ethtool.h: Defines for Linux ethtool.
0004  *
0005  * Copyright (C) 1998 David S. Miller (davem@redhat.com)
0006  * Copyright 2001 Jeff Garzik <jgarzik@pobox.com>
0007  * Portions Copyright 2001 Sun Microsystems (thockin@sun.com)
0008  * Portions Copyright 2002 Intel (eli.kupermann@intel.com,
0009  *                                christopher.leech@intel.com,
0010  *                                scott.feldman@intel.com)
0011  * Portions Copyright (C) Sun Microsystems 2008
0012  */
0013 
0014 #ifndef _UAPI_LINUX_ETHTOOL_H
0015 #define _UAPI_LINUX_ETHTOOL_H
0016 
0017 #include <linux/kernel.h>
0018 #include <linux/types.h>
0019 #include <linux/if_ether.h>
0020 
0021 #define ETHTOOL_GCHANNELS       0x0000003c /* Get no of channels */
0022 
0023 /**
0024  * struct ethtool_channels - configuring number of network channel
0025  * @cmd: ETHTOOL_{G,S}CHANNELS
0026  * @max_rx: Read only. Maximum number of receive channel the driver support.
0027  * @max_tx: Read only. Maximum number of transmit channel the driver support.
0028  * @max_other: Read only. Maximum number of other channel the driver support.
0029  * @max_combined: Read only. Maximum number of combined channel the driver
0030  *  support. Set of queues RX, TX or other.
0031  * @rx_count: Valid values are in the range 1 to the max_rx.
0032  * @tx_count: Valid values are in the range 1 to the max_tx.
0033  * @other_count: Valid values are in the range 1 to the max_other.
0034  * @combined_count: Valid values are in the range 1 to the max_combined.
0035  *
0036  * This can be used to configure RX, TX and other channels.
0037  */
0038 
0039 struct ethtool_channels {
0040     __u32   cmd;
0041     __u32   max_rx;
0042     __u32   max_tx;
0043     __u32   max_other;
0044     __u32   max_combined;
0045     __u32   rx_count;
0046     __u32   tx_count;
0047     __u32   other_count;
0048     __u32   combined_count;
0049 };
0050 
0051 #define ETHTOOL_FWVERS_LEN  32
0052 #define ETHTOOL_BUSINFO_LEN 32
0053 #define ETHTOOL_EROMVERS_LEN    32
0054 
0055 /**
0056  * struct ethtool_drvinfo - general driver and device information
0057  * @cmd: Command number = %ETHTOOL_GDRVINFO
0058  * @driver: Driver short name.  This should normally match the name
0059  *  in its bus driver structure (e.g. pci_driver::name).  Must
0060  *  not be an empty string.
0061  * @version: Driver version string; may be an empty string
0062  * @fw_version: Firmware version string; may be an empty string
0063  * @erom_version: Expansion ROM version string; may be an empty string
0064  * @bus_info: Device bus address.  This should match the dev_name()
0065  *  string for the underlying bus device, if there is one.  May be
0066  *  an empty string.
0067  * @reserved2: Reserved for future use; see the note on reserved space.
0068  * @n_priv_flags: Number of flags valid for %ETHTOOL_GPFLAGS and
0069  *  %ETHTOOL_SPFLAGS commands; also the number of strings in the
0070  *  %ETH_SS_PRIV_FLAGS set
0071  * @n_stats: Number of u64 statistics returned by the %ETHTOOL_GSTATS
0072  *  command; also the number of strings in the %ETH_SS_STATS set
0073  * @testinfo_len: Number of results returned by the %ETHTOOL_TEST
0074  *  command; also the number of strings in the %ETH_SS_TEST set
0075  * @eedump_len: Size of EEPROM accessible through the %ETHTOOL_GEEPROM
0076  *  and %ETHTOOL_SEEPROM commands, in bytes
0077  * @regdump_len: Size of register dump returned by the %ETHTOOL_GREGS
0078  *  command, in bytes
0079  *
0080  * Users can use the %ETHTOOL_GSSET_INFO command to get the number of
0081  * strings in any string set (from Linux 2.6.34).
0082  *
0083  * Drivers should set at most @driver, @version, @fw_version and
0084  * @bus_info in their get_drvinfo() implementation.  The ethtool
0085  * core fills in the other fields using other driver operations.
0086  */
0087 struct ethtool_drvinfo {
0088     __u32   cmd;
0089     char    driver[32];
0090     char    version[32];
0091     char    fw_version[ETHTOOL_FWVERS_LEN];
0092     char    bus_info[ETHTOOL_BUSINFO_LEN];
0093     char    erom_version[ETHTOOL_EROMVERS_LEN];
0094     char    reserved2[12];
0095     __u32   n_priv_flags;
0096     __u32   n_stats;
0097     __u32   testinfo_len;
0098     __u32   eedump_len;
0099     __u32   regdump_len;
0100 };
0101 
0102 #define ETHTOOL_GDRVINFO    0x00000003
0103 
0104 #endif /* _UAPI_LINUX_ETHTOOL_H */