X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/8f6c56a50524aa785f7e596d52dddfb331e18961..c910b4d9d2451126ae3917b931cd4390c11e1d52:/bsd/netinet/in_var.h diff --git a/bsd/netinet/in_var.h b/bsd/netinet/in_var.h index a40d855ae..fe1bc4899 100644 --- a/bsd/netinet/in_var.h +++ b/bsd/netinet/in_var.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2008 Apple Inc. All rights reserved. * * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * @@ -71,6 +71,7 @@ #endif #ifdef PRIVATE +#include /* * Interface address, Internet version. One of these structures @@ -79,32 +80,30 @@ * of the structure and is assumed to be first. */ struct in_ifaddr { - struct ifaddr ia_ifa; /* protocol-independent info */ -#define ia_ifp ia_ifa.ifa_ifp -#define ia_flags ia_ifa.ifa_flags - /* ia_{,sub}net{,mask} in host order */ - u_long ia_net; /* network number of interface */ - u_long ia_netmask; /* mask of net part */ - u_long ia_subnet; /* subnet number, including net */ - u_long ia_subnetmask; /* mask of subnet part */ - struct in_addr ia_netbroadcast; /* to recognize net broadcasts */ - TAILQ_ENTRY(in_ifaddr) ia_link; /* tailq macro glue */ - struct sockaddr_in ia_addr; /* reserve space for interface name */ - struct sockaddr_in ia_dstaddr; /* reserve space for broadcast addr */ -#define ia_broadaddr ia_dstaddr - struct sockaddr_in ia_sockmask; /* reserve space for general netmask */ + struct ifaddr ia_ifa; /* protocol-independent info */ +#define ia_ifp ia_ifa.ifa_ifp +#define ia_flags ia_ifa.ifa_flags + /* ia_{,sub}net{,mask} in host order */ + u_long ia_net; /* network number of interface */ + u_long ia_netmask; /* mask of net part */ + u_long ia_subnet; /* subnet number, including net */ + u_long ia_subnetmask; /* mask of subnet part */ + struct in_addr ia_netbroadcast; /* to recognize net broadcasts */ + TAILQ_ENTRY(in_ifaddr) ia_link; /* tailq macro glue */ + struct sockaddr_in ia_addr; /* reserve space for interface name */ + struct sockaddr_in ia_dstaddr; /* reserve space for broadcast addr */ +#define ia_broadaddr ia_dstaddr + struct sockaddr_in ia_sockmask; /* reserve space for general netmask */ }; #endif /* PRIVATE */ struct in_aliasreq { - char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ - struct sockaddr_in ifra_addr; - struct sockaddr_in ifra_broadaddr; -#define ifra_dstaddr ifra_broadaddr - struct sockaddr_in ifra_mask; -#ifdef __APPLE__ - u_long dlt; -#endif + char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ + struct sockaddr_in ifra_addr; + struct sockaddr_in ifra_broadaddr; +#define ifra_dstaddr ifra_broadaddr + struct sockaddr_in ifra_mask; + u_int32_t ifra_unused; /* not used: used to be 'dlt' */ }; /* @@ -112,21 +111,29 @@ struct in_aliasreq { */ struct kev_in_data { struct net_event_data link_data; - struct in_addr ia_addr; - u_long ia_net; /* network number of interface */ - u_long ia_netmask; /* mask of net part */ - u_long ia_subnet; /* subnet number, including net */ - u_long ia_subnetmask; /* mask of subnet part */ - struct in_addr ia_netbroadcast; /* to recognize net broadcasts */ - struct in_addr ia_dstaddr; + struct in_addr ia_addr; + u_int32_t ia_net; /* network number of interface */ + u_int32_t ia_netmask; /* mask of net part */ + u_int32_t ia_subnet; /* subnet number, including net */ + u_int32_t ia_subnetmask; /* mask of subnet part */ + struct in_addr ia_netbroadcast;/* to recognize net broadcasts */ + struct in_addr ia_dstaddr; }; struct kev_in_collision { - struct net_event_data link_data; /* link colliding arp was received on */ - struct in_addr ia_ipaddr; /* IP address we and another node are using */ - u_char hw_len; /* length of hardware address */ - u_char hw_addr[0]; /* variable length hardware address */ + struct net_event_data link_data; /* link colliding arp was received on */ + struct in_addr ia_ipaddr; /* IP address we and another node are using */ + u_char hw_len; /* length of hardware address */ + u_char hw_addr[0]; /* variable length hardware address */ +}; + +#ifdef __APPLE_API_PRIVATE +struct kev_in_portinuse { + u_int16_t port; /* conflicting port number in host order */ + u_int32_t req_pid; /* PID port requestor */ + u_int32_t reserved[2]; }; +#endif /* @@ -143,6 +150,10 @@ struct kev_in_collision { #define KEV_INET_SIFNETMASK 6 #define KEV_INET_ARPCOLLISION 7 /* use kev_in_collision */ +#ifdef __APPLE_API_PRIVATE +#define KEV_INET_PORTINUSE 8 /* use ken_in_portinuse */ +#endif + #ifdef KERNEL_PRIVATE /* * Given a pointer to an in_ifaddr (ifaddr), @@ -160,6 +171,9 @@ extern struct in_addr zeroin_addr; extern u_char inetctlerrmap[]; extern lck_mtx_t *rt_mtx; +extern int apple_hwcksum_tx; +extern int apple_hwcksum_rx; + /* * Macro for finding the interface (ifnet structure) corresponding to one * of our IP addresses. @@ -258,7 +272,7 @@ do { \ (addr).s_addr) \ break; \ } \ - (inm) = ifma ? ifma->ifma_protospec : 0; \ + (inm) = ifma ? ifma->ifma_protospec : NULL; \ } while(0) /* @@ -290,6 +304,7 @@ void in_delmulti(struct in_multi **); int in_control(struct socket *, u_long, caddr_t, struct ifnet *, struct proc *); void in_rtqdrain(void); +extern struct radix_node *in_validate(struct radix_node *); void ip_input(struct mbuf *); int in_ifadown(struct ifaddr *ifa, int); void in_ifscrub(struct ifnet *, struct in_ifaddr *, int);