]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/if_media.h
xnu-344.49.tar.gz
[apple/xnu.git] / bsd / net / if_media.h
index 827081bfd3562f2529f7cd1925ad79f9287d0617..e0cc044fa4dab1c8485e160ccc7a778a32dbb9dd 100644 (file)
@@ -3,23 +3,27 @@
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
+ * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
  * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this
+ * file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
  * 
  * @APPLE_LICENSE_HEADER_END@
  */
 /*     $NetBSD: if_media.h,v 1.3 1997/03/26 01:19:27 thorpej Exp $     */
+/* $FreeBSD: src/sys/net/if_media.h,v 1.9.2.1 2001/07/04 00:12:38 brooks Exp $ */
 
 /*
  * Copyright (c) 1997
@@ -57,6 +61,7 @@
 
 #ifndef _NET_IF_MEDIA_H_
 #define _NET_IF_MEDIA_H_
+#include <sys/appleapiopts.h>
 
 /*
  * Prototypes and definitions for BSD/OS-compatible network interface
@@ -74,6 +79,7 @@
 
 #include <sys/queue.h>
 
+#ifdef __APPLE_API_UNSTABLE
 /*
  * Driver callbacks for media status and change requests.
  */
@@ -121,7 +127,8 @@ void        ifmedia_set __P((struct ifmedia *ifm, int mword));
 int    ifmedia_ioctl __P((struct ifnet *ifp, struct ifreq *ifr,
            struct ifmedia *ifm, u_long cmd));
 
-#endif /*KERNEL */
+#endif /* __APPLE_API_UNSTABLE */
+#endif /* KERNEL */
 
 /*
  * if_media Options word:
@@ -148,8 +155,8 @@ int ifmedia_ioctl __P((struct ifnet *ifp, struct ifreq *ifr,
 #define        IFM_100_VG      9               /* 100VG-AnyLAN */
 #define        IFM_100_T2      10              /* 100BaseT2 */
 #define        IFM_1000_SX     11              /* 1000BaseSX - multi-mode fiber */
-#define        IFM_10_STP      12              /* 10BaseT over shielded TP */
-#define        IFM_10_FL       13              /* 10BaseFL - Fiber */
+#define IFM_10_STP     12              /* 10BaseT over shielded TP */
+#define IFM_10_FL      13              /* 10baseFL - Fiber */
 #define        IFM_1000_LX     14              /* 1000baseLX - single-mode fiber */
 #define        IFM_1000_CX     15              /* 1000baseCX - 150ohm STP */
 #define        IFM_1000_TX     16              /* 1000baseTX - 4 pair cat 5 */
@@ -163,9 +170,14 @@ int        ifmedia_ioctl __P((struct ifnet *ifp, struct ifreq *ifr,
 #define        IFM_TOK_STP16   4               /* Shielded twisted pair 16m - DB9 */
 #define        IFM_TOK_UTP4    5               /* Unshielded twisted pair 4m - RJ45 */
 #define        IFM_TOK_UTP16   6               /* Unshielded twisted pair 16m - RJ45 */
+#define IFM_TOK_STP100  7              /* Shielded twisted pair 100m - DB9 */
+#define IFM_TOK_UTP100  8              /* Unshielded twisted pair 100m - RJ45 */
 #define        IFM_TOK_ETR     0x00000200      /* Early token release */
 #define        IFM_TOK_SRCRT   0x00000400      /* Enable source routing features */
 #define        IFM_TOK_ALLR    0x00000800      /* All routes / Single route bcast */
+#define IFM_TOK_DTR    0x00002000      /* Dedicated token ring */
+#define IFM_TOK_CLASSIC        0x00004000      /* Classic token ring */
+#define IFM_TOK_AUTO   0x00008000      /* Automatic Dedicate/Classic token ring */
 
 /*
  * FDDI
@@ -186,6 +198,7 @@ int ifmedia_ioctl __P((struct ifnet *ifp, struct ifreq *ifr,
 #define        IFM_IEEE80211_DS5       6       /* Direct Sequence 5Mbps*/
 #define        IFM_IEEE80211_DS11      7       /* Direct Sequence 11Mbps*/
 #define        IFM_IEEE80211_DS1       8       /* Direct Sequence 1Mbps */
+#define IFM_IEEE80211_DS22     9       /* Direct Sequence 22Mbps */
 #define        IFM_IEEE80211_ADHOC     0x00000100      /* Operate in Adhoc mode */
 
 /*
@@ -225,9 +238,19 @@ int        ifmedia_ioctl __P((struct ifnet *ifp, struct ifreq *ifr,
 /*
  * Macros to extract various bits of information from the media word.
  */
-#define        IFM_TYPE(x)     ((x) & IFM_NMASK)
-#define        IFM_SUBTYPE(x)  ((x) & IFM_TMASK)
-#define        IFM_INST(x)     (((x) & IFM_IMASK) >> IFM_ISHIFT)
+#define        IFM_TYPE(x)         ((x) & IFM_NMASK)
+#define        IFM_SUBTYPE(x)      ((x) & IFM_TMASK)
+#define IFM_TYPE_OPTIONS(x) ((x) & IFM_OMASK)
+#define        IFM_INST(x)         (((x) & IFM_IMASK) >> IFM_ISHIFT)
+#define IFM_OPTIONS(x) ((x) & (IFM_OMASK|IFM_GMASK))
+
+#define IFM_INST_MAX   IFM_INST(IFM_IMASK)
+
+/*
+ * Macro to create a media word.
+ */
+#define IFM_MAKEWORD(type, subtype, options, instance)                 \
+       ((type) | (subtype) | (options) | ((instance) << IFM_ISHIFT))
 
 /*
  * NetBSD extension not defined in the BSDI API.  This is used in various
@@ -345,6 +368,7 @@ struct ifmedia_description {
     { IFM_IEEE80211_DS2,  "DS2"  },                 \
     { IFM_IEEE80211_DS5,  "DS5"  },                 \
     { IFM_IEEE80211_DS11, "DS11" },                 \
+    { IFM_IEEE80211_DS22, "DS22" },                 \
     { 0, NULL },                                    \
 }