Viewing file:      ethtool.h (5.19 KB)      -rw-r--r-- Select action/file-type:    (+) |   (+) |   (+) | Code (+) | Session (+) |   (+) | SDB (+) |   (+) |   (+) |   (+) |   (+) |   (+) |
 
/*  * ethtool.h: Defines for Linux ethtool.  *  * Copyright (C) 1998 David S. Miller (davem@redhat.com)  * Copyright 2001 Jeff Garzik <jgarzik@mandrakesoft.com>  * Portions Copyright 2001 Sun Microsystems (thockin@sun.com)  */
  #ifndef _LINUX_ETHTOOL_H #define _LINUX_ETHTOOL_H
  #include <linux/types.h>
  /* This should work for both 32 and 64 bit userland. */ struct ethtool_cmd {     __u32    cmd;     __u32    supported;    /* Features this interface supports */     __u32    advertising;    /* Features this interface advertises */     __u16    speed;        /* The forced speed, 10Mb, 100Mb, gigabit */     __u8    duplex;        /* Duplex, half or full */     __u8    port;        /* Which connector port */     __u8    phy_address;     __u8    transceiver;    /* Which tranceiver to use */     __u8    autoneg;    /* Enable or disable autonegotiation */     __u32    maxtxpkt;    /* Tx pkts before generating tx int */     __u32    maxrxpkt;    /* Rx pkts before generating rx int */     __u32    reserved[4]; };
  #define ETHTOOL_BUSINFO_LEN    32 /* these strings are set to whatever the driver author decides... */ struct ethtool_drvinfo {     __u32    cmd;     char    driver[32];    /* driver short name, "tulip", "eepro100" */     char    version[32];    /* driver version string */     char    fw_version[32];    /* firmware version string, if applicable */     char    bus_info[ETHTOOL_BUSINFO_LEN];    /* Bus info for this IF. */                 /* For PCI devices, use pci_dev->slot_name. */     char    reserved1[32];     char    reserved2[24];     __u32    eedump_len;    /* Size of data from ETHTOOL_GEEPROM (bytes) */     __u32    regdump_len;    /* Size of data from ETHTOOL_GREGS (bytes) */ };
  #define SOPASS_MAX    6 /* wake-on-lan settings */ struct ethtool_wolinfo {     __u32    cmd;     __u32    supported;     __u32    wolopts;     __u8    sopass[SOPASS_MAX]; /* SecureOn(tm) password */ };
  /* for passing single values */ struct ethtool_value {     __u32    cmd;     __u32    data; };
  /* for passing big chunks of data */ struct ethtool_regs {     __u32    cmd;     __u32    version; /* driver-specific, indicates different chips/revs */     __u32    len; /* bytes */     __u8    data[0]; };
  /* for passing EEPROM chunks */ struct ethtool_eeprom {     __u32    cmd;     __u32    magic;     __u32    offset; /* in bytes */     __u32    len; /* in bytes */     __u8    data[0]; }; /* CMDs currently supported */ #define ETHTOOL_GSET        0x00000001 /* Get settings. */ #define ETHTOOL_SSET        0x00000002 /* Set settings, privileged. */ #define ETHTOOL_GDRVINFO    0x00000003 /* Get driver info. */ #define ETHTOOL_GREGS        0x00000004 /* Get NIC registers, privileged. */ #define ETHTOOL_GWOL        0x00000005 /* Get wake-on-lan options. */ #define ETHTOOL_SWOL        0x00000006 /* Set wake-on-lan options, priv. */ #define ETHTOOL_GMSGLVL        0x00000007 /* Get driver message level */ #define ETHTOOL_SMSGLVL        0x00000008 /* Set driver msg level, priv. */ #define ETHTOOL_NWAY_RST    0x00000009 /* Restart autonegotiation, priv. */ #define ETHTOOL_GLINK        0x0000000a /* Get link status */ #define ETHTOOL_GEEPROM        0x0000000b /* Get EEPROM data */ #define ETHTOOL_SEEPROM        0x0000000c /* Set EEPROM data */
  /* compatibility with older code */ #define SPARC_ETH_GSET        ETHTOOL_GSET #define SPARC_ETH_SSET        ETHTOOL_SSET
  /* Indicates what features are supported by the interface. */ #define SUPPORTED_10baseT_Half        (1 << 0) #define SUPPORTED_10baseT_Full        (1 << 1) #define SUPPORTED_100baseT_Half        (1 << 2) #define SUPPORTED_100baseT_Full        (1 << 3) #define SUPPORTED_1000baseT_Half    (1 << 4) #define SUPPORTED_1000baseT_Full    (1 << 5) #define SUPPORTED_Autoneg        (1 << 6) #define SUPPORTED_TP            (1 << 7) #define SUPPORTED_AUI            (1 << 8) #define SUPPORTED_MII            (1 << 9) #define SUPPORTED_FIBRE            (1 << 10) #define SUPPORTED_BNC            (1 << 11)
  /* Indicates what features are advertised by the interface. */ #define ADVERTISED_10baseT_Half        (1 << 0) #define ADVERTISED_10baseT_Full        (1 << 1) #define ADVERTISED_100baseT_Half    (1 << 2) #define ADVERTISED_100baseT_Full    (1 << 3) #define ADVERTISED_1000baseT_Half    (1 << 4) #define ADVERTISED_1000baseT_Full    (1 << 5) #define ADVERTISED_Autoneg        (1 << 6) #define ADVERTISED_TP            (1 << 7) #define ADVERTISED_AUI            (1 << 8) #define ADVERTISED_MII            (1 << 9) #define ADVERTISED_FIBRE        (1 << 10) #define ADVERTISED_BNC            (1 << 11)
  /* The following are all involved in forcing a particular link  * mode for the device for setting things.  When getting the  * devices settings, these indicate the current mode and whether  * it was foced up into this mode or autonegotiated.  */
  /* The forced speed, 10Mb, 100Mb, gigabit. */ #define SPEED_10        10 #define SPEED_100        100 #define SPEED_1000        1000
  /* Duplex, half or full. */ #define DUPLEX_HALF        0x00 #define DUPLEX_FULL        0x01
  /* Which connector port. */ #define PORT_TP            0x00 #define PORT_AUI        0x01 #define PORT_MII        0x02 #define PORT_FIBRE        0x03 #define PORT_BNC        0x04
  /* Which tranceiver to use. */ #define XCVR_INTERNAL        0x00 #define XCVR_EXTERNAL        0x01 #define XCVR_DUMMY1        0x02 #define XCVR_DUMMY2        0x03 #define XCVR_DUMMY3        0x04
  /* Enable or disable autonegotiation.  If this is set to enable,  * the forced link modes above are completely ignored.  */ #define AUTONEG_DISABLE        0x00 #define AUTONEG_ENABLE        0x01
  /* Wake-On-Lan options. */ #define WAKE_PHY        (1 << 0) #define WAKE_UCAST        (1 << 1) #define WAKE_MCAST        (1 << 2) #define WAKE_BCAST        (1 << 3) #define WAKE_ARP        (1 << 4) #define WAKE_MAGIC        (1 << 5) #define WAKE_MAGICSECURE    (1 << 6) /* only meaningful if WAKE_MAGIC */
  #endif /* _LINUX_ETHTOOL_H */ 
  |