aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhil Blundell <philb@gnu.org>2000-05-21 13:44:36 +0000
committerPhil Blundell <philb@gnu.org>2000-05-21 13:44:36 +0000
commit39b7aeb53f37c64c1abb95b5bf1e500ac14478a3 (patch)
tree22ded2c35cdedab9b2fd211d9f0a70c84cb7a132 /include
parentAdd support for `add' and `del' with IPv4. (diff)
downloadnet-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.h86
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 */