-
-void in_pcbpurgeif0(struct inpcb *, struct ifnet *);
-void in_losing(struct inpcb *);
-void in_rtchange(struct inpcb *, int);
-int in_pcballoc(struct socket *, struct inpcbinfo *, struct proc *);
-int in_pcbbind(struct inpcb *, struct sockaddr *, struct proc *);
-int in_pcbconnect(struct inpcb *, struct sockaddr *, struct proc *);
-void in_pcbdetach(struct inpcb *);
-void in_pcbdispose (struct inpcb *);
-void in_pcbdisconnect(struct inpcb *);
-int in_pcbinshash(struct inpcb *, int);
-int in_pcbladdr(struct inpcb *, struct sockaddr *, struct sockaddr_in **);
-struct inpcb *
- in_pcblookup_local(struct inpcbinfo *, struct in_addr, u_int, int);
-struct inpcb *
- in_pcblookup_local_and_cleanup(struct inpcbinfo *, struct in_addr, u_int, int);
-struct inpcb *
- in_pcblookup_hash(struct inpcbinfo *,
- struct in_addr, u_int, struct in_addr, u_int,
- int, struct ifnet *);
-void in_pcbnotifyall(struct inpcbinfo *, struct in_addr,
- int, void (*)(struct inpcb *, int));
-void in_pcbrehash(struct inpcb *);
-int in_setpeeraddr(struct socket *so, struct sockaddr **nam);
-int in_setsockaddr(struct socket *so, struct sockaddr **nam);
-int in_pcb_checkstate(struct inpcb *pcb, int mode, int locked);
-
-int
-in_pcb_grab_port (struct inpcbinfo *pcbinfo,
- u_short options,
- struct in_addr laddr,
- u_short *lport,
- struct in_addr faddr,
- u_short fport,
- u_int cookie,
- u_char owner_id);
-
-int
-in_pcb_letgo_port(struct inpcbinfo *pcbinfo,
- struct in_addr laddr,
- u_short lport,
- struct in_addr faddr,
- u_short fport, u_char owner_id);
-
-u_char
-in_pcb_get_owner(struct inpcbinfo *pcbinfo,
- struct in_addr laddr,
- u_short lport,
- struct in_addr faddr,
- u_short fport,
- u_int *cookie);
-
-void in_pcb_nat_init(struct inpcbinfo *pcbinfo, int afamily, int pfamily,
- int protocol);
-
-int
-in_pcb_new_share_client(struct inpcbinfo *pcbinfo, u_char *owner_id);
-
-int
-in_pcb_rem_share_client(struct inpcbinfo *pcbinfo, u_char owner_id);
-
-void in_pcbremlists(struct inpcb *inp);
-int in_pcb_ckeckstate(struct inpcb *, int, int);
-void inpcb_to_compat(struct inpcb *inp, struct inpcb_compat *inp_compat);
+extern void in_losing(struct inpcb *);
+extern void in_rtchange(struct inpcb *, int);
+extern int in_pcballoc(struct socket *, struct inpcbinfo *, struct proc *);
+extern int in_pcbbind(struct inpcb *, struct sockaddr *, struct proc *);
+extern int in_pcbconnect(struct inpcb *, struct sockaddr *, struct proc *);
+extern void in_pcbdetach(struct inpcb *);
+extern void in_pcbdispose (struct inpcb *);
+extern void in_pcbdisconnect(struct inpcb *);
+extern int in_pcbinshash(struct inpcb *, int);
+extern int in_pcbladdr(struct inpcb *, struct sockaddr *,
+ struct sockaddr_in **);
+extern struct inpcb *in_pcblookup_local(struct inpcbinfo *, struct in_addr,
+ u_int, int);
+extern struct inpcb *in_pcblookup_local_and_cleanup(struct inpcbinfo *,
+ struct in_addr, u_int, int);
+extern struct inpcb *in_pcblookup_hash(struct inpcbinfo *, struct in_addr,
+ u_int, struct in_addr, u_int, int, struct ifnet *);
+extern void in_pcbnotifyall(struct inpcbinfo *, struct in_addr, int,
+ void (*)(struct inpcb *, int));
+extern void in_pcbrehash(struct inpcb *);
+extern int in_setpeeraddr(struct socket *so, struct sockaddr **nam);
+extern int in_setsockaddr(struct socket *so, struct sockaddr **nam);
+extern int in_pcb_checkstate(struct inpcb *pcb, int mode, int locked);
+
+extern void in_pcbremlists(struct inpcb *inp);
+extern void inpcb_to_compat(struct inpcb *inp,
+ struct inpcb_compat *inp_compat);
+#if !CONFIG_EMBEDDED
+extern void inpcb_to_xinpcb64(struct inpcb *inp,
+ struct xinpcb64 *xinp);
+#endif
+extern void inp_route_copyout(struct inpcb *, struct route *);
+extern void inp_route_copyin(struct inpcb *, struct route *);