Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
[safe/jmp/linux-2.6] / include / linux / ethtool.h
index a3cac53..b33f316 100644 (file)
@@ -14,7 +14,6 @@
 #define _LINUX_ETHTOOL_H
 
 #include <linux/types.h>
-#include <linux/rculist.h>
 
 /* This should work for both 32 and 64 bit userland. */
 struct ethtool_cmd {
@@ -62,6 +61,13 @@ struct ethtool_drvinfo {
                                /* For PCI devices, use pci_name(pci_dev). */
        char    reserved1[32];
        char    reserved2[12];
+                               /*
+                                * Some struct members below are filled in
+                                * using ops->get_sset_count().  Obtaining
+                                * this info from ethtool_drvinfo is now
+                                * deprecated; Use ETHTOOL_GSSET_INFO
+                                * instead.
+                                */
        __u32   n_priv_flags;   /* number of flags valid in ETHTOOL_GPFLAGS */
        __u32   n_stats;        /* number of u64's from ETHTOOL_GSTATS */
        __u32   testinfo_len;
@@ -254,6 +260,17 @@ struct ethtool_gstrings {
        __u8    data[0];
 };
 
+struct ethtool_sset_info {
+       __u32   cmd;            /* ETHTOOL_GSSET_INFO */
+       __u32   reserved;
+       __u64   sset_mask;      /* input: each bit selects an sset to query */
+                               /* output: each bit a returned sset */
+       __u32   data[0];        /* ETH_SS_xxx count, in order, based on bits
+                                  in sset_mask.  One bit implies one
+                                  __u32, two bits implies two
+                                  __u32's, etc. */
+};
+
 enum ethtool_test_flags {
        ETH_TEST_FL_OFFLINE     = (1 << 0),     /* online / offline */
        ETH_TEST_FL_FAILED      = (1 << 1),     /* test passed / failed */
@@ -409,6 +426,8 @@ struct ethtool_flash {
 
 #ifdef __KERNEL__
 
+#include <linux/rculist.h>
+
 struct ethtool_rx_ntuple_flow_spec_container {
        struct ethtool_rx_ntuple_flow_spec fs;
        struct list_head list;
@@ -605,9 +624,9 @@ struct ethtool_ops {
 #define        ETHTOOL_SRXCLSRLINS     0x00000032 /* Insert RX classification rule */
 #define        ETHTOOL_FLASHDEV        0x00000033 /* Flash firmware to device */
 #define        ETHTOOL_RESET           0x00000034 /* Reset hardware */
-
-#define ETHTOOL_SRXNTUPLE      0x00000035 /* Add an n-tuple filter to device */
-#define ETHTOOL_GRXNTUPLE      0x00000036 /* Get n-tuple filters from device */
+#define        ETHTOOL_SRXNTUPLE       0x00000035 /* Add an n-tuple filter to device */
+#define        ETHTOOL_GRXNTUPLE       0x00000036 /* Get n-tuple filters from device */
+#define        ETHTOOL_GSSET_INFO      0x00000037 /* Get string set info */
 
 /* compatibility with older code */
 #define SPARC_ETH_GSET         ETHTOOL_GSET