-#endif /* __APPLE_API_PRIVATE */
-
-#ifndef __APPLE__
-void ether_ifattach __P((struct ifnet *, int));
-void ether_ifdetach __P((struct ifnet *, int));
-void ether_input __P((struct ifnet *, struct ether_header *, struct mbuf *));
-void ether_demux __P((struct ifnet *, struct ether_header *, struct mbuf *));
-int ether_output __P((struct ifnet *,
- struct mbuf *, struct sockaddr *, struct rtentry *));
-int ether_output_frame __P((struct ifnet *, struct mbuf *));
-int ether_ioctl __P((struct ifnet *, int, caddr_t));
-#endif
-
-int if_addmulti __P((struct ifnet *, struct sockaddr *,
- struct ifmultiaddr **));
-int if_allmulti __P((struct ifnet *, int));
-void if_attach __P((struct ifnet *));
-int if_delmulti __P((struct ifnet *, struct sockaddr *));
-void if_down __P((struct ifnet *));
-void if_route __P((struct ifnet *, int flag, int fam));
-void if_unroute __P((struct ifnet *, int flag, int fam));
-void if_up __P((struct ifnet *));
-/*void ifinit __P((void));*/ /* declared in systm.h for main() */
-int ifioctl __P((struct socket *, u_long, caddr_t, struct proc *));
-int ifpromisc __P((struct ifnet *, int));
-struct ifnet *ifunit __P((const char *));
-struct ifnet *if_withname __P((struct sockaddr *));
-
-int if_poll_recv_slow __P((struct ifnet *ifp, int *quotap));
-void if_poll_xmit_slow __P((struct ifnet *ifp, int *quotap));
-void if_poll_throttle __P((void));
-void if_poll_unthrottle __P((void *));
-void if_poll_init __P((void));
-void if_poll __P((void));
-
-struct ifaddr *ifa_ifwithaddr __P((struct sockaddr *));
-struct ifaddr *ifa_ifwithdstaddr __P((struct sockaddr *));
-struct ifaddr *ifa_ifwithnet __P((struct sockaddr *));
-struct ifaddr *ifa_ifwithroute __P((int, struct sockaddr *,
- struct sockaddr *));
-struct ifaddr *ifaof_ifpforaddr __P((struct sockaddr *, struct ifnet *));
-void ifafree __P((struct ifaddr *));
-void ifaref __P((struct ifaddr *));
-
-struct ifmultiaddr *ifmaof_ifpforaddr __P((struct sockaddr *,
- struct ifnet *));
-#ifndef __APPLE__
-int if_simloop __P((struct ifnet *ifp, struct mbuf *m,
- struct sockaddr *dst, int hlen));
-#endif
-
-#endif /* KERNEL */
-
-
-#endif /* __APPLE_API_UNSTABLE */
+extern struct ifnet *lo_ifp;
+
+int if_addmulti(struct ifnet *, const struct sockaddr *, struct ifmultiaddr **);
+int if_allmulti(struct ifnet *, int);
+void if_attach(struct ifnet *);
+int if_delmultiaddr(struct ifmultiaddr *ifma, int locked);
+int if_delmulti(struct ifnet *, const struct sockaddr *);
+void if_down(struct ifnet *);
+void if_route(struct ifnet *, int flag, int fam);
+void if_unroute(struct ifnet *, int flag, int fam);
+void if_up(struct ifnet *);
+void if_updown(struct ifnet *ifp, int up);
+/*void ifinit(void));*/ /* declared in systm.h for main( */
+int ifioctl(struct socket *, u_long, caddr_t, struct proc *);
+int ifioctllocked(struct socket *, u_long, caddr_t, struct proc *);
+struct ifnet *ifunit(const char *);
+struct ifnet *if_withname(struct sockaddr *);
+
+void if_clone_attach(struct if_clone *);
+void if_clone_detach(struct if_clone *);
+
+void ifnet_lock_assert(struct ifnet *ifp, int what);
+void ifnet_lock_shared(struct ifnet *ifp);
+void ifnet_lock_exclusive(struct ifnet *ifp);
+void ifnet_lock_done(struct ifnet *ifp);
+
+void ifnet_head_lock_shared(void);
+void ifnet_head_lock_exclusive(void);
+void ifnet_head_done(void);
+
+void if_attach_ifa(struct ifnet * ifp, struct ifaddr *ifa);
+void if_detach_ifa(struct ifnet * ifp, struct ifaddr *ifa);
+
+void ifma_reference(struct ifmultiaddr *ifma);
+void ifma_release(struct ifmultiaddr *ifma);
+
+struct ifaddr *ifa_ifwithaddr(const struct sockaddr *);
+struct ifaddr *ifa_ifwithdstaddr(const struct sockaddr *);
+struct ifaddr *ifa_ifwithnet(const struct sockaddr *);
+struct ifaddr *ifa_ifwithroute(int, const struct sockaddr *, const struct sockaddr *);
+struct ifaddr *ifaof_ifpforaddr(const struct sockaddr *, struct ifnet *);
+void ifafree(struct ifaddr *);
+void ifaref(struct ifaddr *);
+
+struct ifmultiaddr *ifmaof_ifpforaddr(const struct sockaddr *, struct ifnet *);
+
+#ifdef BSD_KERNEL_PRIVATE
+void if_data_internal_to_if_data(const struct if_data_internal *if_data_int,
+ struct if_data *if_data);
+void if_data_internal_to_if_data64(const struct if_data_internal *if_data_int,
+ struct if_data64 *if_data64);
+#endif /* BSD_KERNEL_PRIVATE */
+#endif /* KERNEL_PRIVATE */