diff options
author | Phil Blundell <philb@gnu.org> | 2000-05-21 13:44:36 +0000 |
---|---|---|
committer | Phil Blundell <philb@gnu.org> | 2000-05-21 13:44:36 +0000 |
commit | 39b7aeb53f37c64c1abb95b5bf1e500ac14478a3 (patch) | |
tree | 22ded2c35cdedab9b2fd211d9f0a70c84cb7a132 /include | |
parent | Add support for `add' and `del' with IPv4. (diff) | |
download | net-tools-39b7aeb53f37c64c1abb95b5bf1e500ac14478a3.tar.gz net-tools-39b7aeb53f37c64c1abb95b5bf1e500ac14478a3.tar.bz2 net-tools-39b7aeb53f37c64c1abb95b5bf1e500ac14478a3.zip |
Add mii-tool from David Hinds.
Diffstat (limited to 'include')
-rw-r--r-- | include/mii.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/include/mii.h b/include/mii.h new file mode 100644 index 0000000..1ef7ccc --- /dev/null +++ b/include/mii.h @@ -0,0 +1,86 @@ +/* + * mii.h 1.4 2000/04/25 22:06:15 + * + * Media Independent Interface support: register layout and ioctl's + * + * Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org + */ + +#ifndef _LINUX_MII_H +#define _LINUX_MII_H + +/* network interface ioctl's for MII commands */ +#ifndef SIOCGMIIPHY +#define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */ +#define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */ +#define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */ +#define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */ +#define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */ +#endif + +#include <linux/types.h> + +/* This data structure is used for all the MII ioctl's */ +struct mii_data { + __u16 phy_id; + __u16 reg_num; + __u16 val_in; + __u16 val_out; +}; + +/* Basic Mode Control Register */ +#define MII_BMCR 0x00 +#define MII_BMCR_RESET 0x8000 +#define MII_BMCR_LOOPBACK 0x4000 +#define MII_BMCR_100MBIT 0x2000 +#define MII_BMCR_AN_ENA 0x1000 +#define MII_BMCR_ISOLATE 0x0400 +#define MII_BMCR_RESTART 0x0200 +#define MII_BMCR_DUPLEX 0x0100 +#define MII_BMCR_COLTEST 0x0080 + +/* Basic Mode Status Register */ +#define MII_BMSR 0x01 +#define MII_BMSR_CAP_MASK 0xf800 +#define MII_BMSR_100BASET4 0x8000 +#define MII_BMSR_100BASETX_FD 0x4000 +#define MII_BMSR_100BASETX_HD 0x2000 +#define MII_BMSR_10BASET_FD 0x1000 +#define MII_BMSR_10BASET_HD 0x0800 +#define MII_BMSR_NO_PREAMBLE 0x0040 +#define MII_BMSR_AN_COMPLETE 0x0020 +#define MII_BMSR_REMOTE_FAULT 0x0010 +#define MII_BMSR_AN_ABLE 0x0008 +#define MII_BMSR_LINK_VALID 0x0004 +#define MII_BMSR_JABBER 0x0002 +#define MII_BMSR_EXT_CAP 0x0001 + +#define MII_PHY_ID1 0x02 +#define MII_PHY_ID2 0x03 + +/* Auto-Negotiation Advertisement Register */ +#define MII_ANAR 0x04 +/* Auto-Negotiation Link Partner Ability Register */ +#define MII_ANLPAR 0x05 +#define MII_AN_NEXT_PAGE 0x8000 +#define MII_AN_ACK 0x4000 +#define MII_AN_REMOTE_FAULT 0x2000 +#define MII_AN_ABILITY_MASK 0x07e0 +#define MII_AN_FLOW_CONTROL 0x0400 +#define MII_AN_100BASET4 0x0200 +#define MII_AN_100BASETX_FD 0x0100 +#define MII_AN_100BASETX_HD 0x0080 +#define MII_AN_10BASET_FD 0x0040 +#define MII_AN_10BASET_HD 0x0020 +#define MII_AN_PROT_MASK 0x001f +#define MII_AN_PROT_802_3 0x0001 + +/* Auto-Negotiation Expansion Register */ +#define MII_ANER 0x06 +#define MII_ANER_MULT_FAULT 0x0010 +#define MII_ANER_LP_NP_ABLE 0x0008 +#define MII_ANER_NP_ABLE 0x0004 +#define MII_ANER_PAGE_RX 0x0002 +#define MII_ANER_LP_AN_ABLE 0x0001 + +#endif /* _LINUX_MII_H */ |