]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/if_media.h
xnu-2782.30.5.tar.gz
[apple/xnu.git] / bsd / net / if_media.h
index 12cbc871bee38b850390442d0881983fe4bf51a6..afba92a4302b551769c1b1568db7317d78340d84 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2000-2013 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
  */
 
 #ifdef KERNEL_PRIVATE
+/* sigh; some modules are lazy and thus rely on this */
 #include <sys/queue.h>
-
-/*
- * Driver callbacks for media status and change requests.
- */
-typedef        int (*ifm_change_cb_t)(struct ifnet *ifp);
-typedef        void (*ifm_stat_cb_t)(struct ifnet *ifp, struct ifmediareq *req);
-
-/*
- * In-kernel representation of a single supported media type.
- */
-struct ifmedia_entry {
-       LIST_ENTRY(ifmedia_entry) ifm_list;
-       int     ifm_media;      /* description of this media attachment */
-       int     ifm_data;       /* for driver-specific use */
-       void    *ifm_aux;       /* for driver-specific use */
-};
-
-/*
- * One of these goes into a network interface's softc structure.
- * It is used to keep general media state.
- */
-struct ifmedia {
-       int     ifm_mask;       /* mask of changes we don't care about */
-       int     ifm_media;      /* current user-set media word */
-       struct ifmedia_entry *ifm_cur;  /* currently selected media */
-       LIST_HEAD(, ifmedia_entry) ifm_list; /* list of all supported media */
-       ifm_change_cb_t ifm_change;     /* media change driver callback */
-       ifm_stat_cb_t   ifm_status;     /* media status driver callback */
-};
-
-/* Initialize an interface's struct if_media field. */
-void   ifmedia_init(struct ifmedia *ifm, int dontcare_mask,
-           ifm_change_cb_t change_callback, ifm_stat_cb_t status_callback);
-
-/* Add one supported medium to a struct ifmedia. */
-void   ifmedia_add(struct ifmedia *ifm, int mword, int data, void *aux);
-
-/* Add an array (of ifmedia_entry) media to a struct ifmedia. */
-void   ifmedia_list_add(struct ifmedia *mp, struct ifmedia_entry *lp,
-           int count);
-
-/* Set default media type on initialization. */
-void   ifmedia_set(struct ifmedia *ifm, int mword);
-
-/* Common ioctl function for getting/setting media, called by driver. */
-int    ifmedia_ioctl(struct ifnet *ifp, struct ifreq *ifr,
-           struct ifmedia *ifm, uint32_t cmd);
-
 #endif /* KERNEL_PRIVATE */
 
 /*
@@ -242,6 +195,7 @@ int ifmedia_ioctl(struct ifnet *ifp, struct ifreq *ifr,
  */
 #define        IFM_AVALID      0x00000001      /* Active bit valid */
 #define        IFM_ACTIVE      0x00000002      /* Interface attached to working net */
+#define        IFM_WAKESAMENET 0x00000004      /* No link transition while asleep */
 
 /*
  * Macros to extract various bits of information from the media word.