X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/55e303ae13a4cf49d70f2294092726f2fffb9ef2..813fb2f63a553c957e917ede5f119b021d6ce391:/bsd/netinet6/in6_pcb.h diff --git a/bsd/netinet6/in6_pcb.h b/bsd/netinet6/in6_pcb.h index b0ebf339e..093cef2f0 100644 --- a/bsd/netinet6/in6_pcb.h +++ b/bsd/netinet6/in6_pcb.h @@ -1,3 +1,30 @@ +/* + * Copyright (c) 2008-2013 Apple Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * 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. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. + * + * 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, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * All rights reserved. @@ -67,50 +94,36 @@ #define _NETINET6_IN6_PCB_H_ #include -#ifdef KERNEL -#ifdef __APPLE_API_PRIVATE -#define satosin6(sa) ((struct sockaddr_in6 *)(sa)) -#define sin6tosa(sin6) ((struct sockaddr *)(sin6)) -#define ifatoia6(ifa) ((struct in6_ifaddr *)(ifa)) - -void in6_pcbpurgeif0 __P((struct in6pcb *, struct ifnet *)); -void in6_losing __P((struct inpcb *)); -int in6_pcballoc __P((struct socket *, struct inpcbinfo *, struct proc *)); -int in6_pcbbind __P((struct inpcb *, struct sockaddr *, struct proc *)); -int in6_pcbconnect __P((struct inpcb *, struct sockaddr *, struct proc *)); -void in6_pcbdetach __P((struct inpcb *)); -void in6_pcbdisconnect __P((struct inpcb *)); -int in6_pcbladdr __P((struct inpcb *, struct sockaddr *, - struct in6_addr **)); -struct inpcb * - in6_pcblookup_local __P((struct inpcbinfo *, - struct in6_addr *, u_int, int)); -struct inpcb * - in6_pcblookup_hash __P((struct inpcbinfo *, - struct in6_addr *, u_int, struct in6_addr *, - u_int, int, struct ifnet *)); -void in6_pcbnotify __P((struct inpcbhead *, struct sockaddr *, - u_int, const struct sockaddr *, u_int, int, - void (*)(struct inpcb *, int))); -void - in6_rtchange __P((struct inpcb *, int)); -struct sockaddr * - in6_sockaddr __P((in_port_t port, struct in6_addr *addr_p)); -struct sockaddr * - in6_v4mapsin6_sockaddr __P((in_port_t port, struct in_addr *addr_p)); -int in6_setpeeraddr __P((struct socket *so, struct sockaddr **nam)); -int in6_setsockaddr __P((struct socket *so, struct sockaddr **nam)); -int in6_mapped_sockaddr __P((struct socket *so, struct sockaddr **nam)); -int in6_mapped_peeraddr __P((struct socket *so, struct sockaddr **nam)); -struct in6_addr *in6_selectsrc __P((struct sockaddr_in6 *, - struct ip6_pktopts *, - struct ip6_moptions *, - struct route_in6 *, - struct in6_addr *, int *)); -int in6_selecthlim __P((struct in6pcb *, struct ifnet *)); -int in6_pcbsetport __P((struct in6_addr *, struct inpcb *, struct proc *)); -void init_sin6 __P((struct sockaddr_in6 *sin6, struct mbuf *m)); -#endif /* __APPLE_API_PRIVATE */ -#endif /* KERNEL */ - +#ifdef BSD_KERNEL_PRIVATE +extern void in6_losing(struct inpcb *); +extern int in6_pcbbind(struct inpcb *, struct sockaddr *, struct proc *); +extern int in6_pcbconnect(struct inpcb *, struct sockaddr *, struct proc *); +extern void in6_pcbdetach(struct inpcb *); +extern void in6_pcbdisconnect(struct inpcb *); +extern int in6_pcbladdr(struct inpcb *, struct sockaddr *, + struct in6_addr *, struct ifnet **); +extern struct inpcb *in6_pcblookup_local(struct inpcbinfo *, struct in6_addr *, + u_int, int); +extern struct inpcb *in6_pcblookup_hash(struct inpcbinfo *, struct in6_addr *, + u_int, struct in6_addr *, u_int, int, struct ifnet *); +extern int in6_pcblookup_hash_exists(struct inpcbinfo *, struct in6_addr *, + u_int, struct in6_addr *, u_int, int, uid_t *, gid_t *, struct ifnet *); +extern void in6_pcbnotify(struct inpcbinfo *, struct sockaddr *, u_int, + const struct sockaddr *, u_int, int, void *, void (*)(struct inpcb *, int)); +extern void in6_rtchange(struct inpcb *, int); +extern struct sockaddr *in6_sockaddr(in_port_t port, struct in6_addr *addr_p); +extern void in6_sockaddr_s(in_port_t, struct in6_addr *, struct sockaddr_in6 *); +extern int in6_getpeeraddr(struct socket *, struct sockaddr **); +extern int in6_getpeeraddr_s(struct socket *, struct sockaddr_storage *); +extern int in6_getsockaddr(struct socket *, struct sockaddr **); +extern int in6_getsockaddr_s(struct socket *, struct sockaddr_storage *); +extern int in6_mapped_sockaddr(struct socket *so, struct sockaddr **nam); +extern int in6_mapped_peeraddr(struct socket *so, struct sockaddr **nam); +extern int in6_selecthlim(struct in6pcb *, struct ifnet *); +extern int in6_pcbsetport(struct in6_addr *, struct inpcb *, + struct proc *, int); +extern void init_sin6(struct sockaddr_in6 *sin6, struct mbuf *m); +extern void in6p_route_copyout(struct inpcb *, struct route_in6 *); +extern void in6p_route_copyin(struct inpcb *, struct route_in6 *); +#endif /* BSD_KERNEL_PRIVATE */ #endif /* !_NETINET6_IN6_PCB_H_ */