inpcb
LIST_ENTRY(inpcb) inp_hash; /* (h/i) hash list */
LIST_ENTRY(inpcb) inp_pcbgrouphash; /* (g/i) hash list */
LIST_ENTRY(inpcb) inp_list; /* (p/l) list for all PCBs for proto */
LIST_ENTRY(inpcb) inp_pcbgroup_wild; /* (g/i/h) group wildcard entry */
LIST_ENTRY(inpcb) inp_portlist; /* (i/h) */
#define inp_zero_size offsetof(struct inpcb, inp_gencnt)
struct inpcb xi_inp;
void inp_wlock(struct inpcb *);
void inp_wunlock(struct inpcb *);
void inp_rlock(struct inpcb *);
void inp_runlock(struct inpcb *);
void inp_lock_assert(struct inpcb *);
void inp_unlock_assert(struct inpcb *);
inp_lock_assert(struct inpcb *inp __unused)
inp_unlock_assert(struct inpcb *inp __unused)
void inp_apply_all(void (*func)(struct inpcb *, void *), void *arg);
int inp_ip_tos_get(const struct inpcb *inp);
void inp_ip_tos_set(struct inpcb *inp, int val);
inp_inpcbtosocket(struct inpcb *inp);
inp_inpcbtotcpcb(struct inpcb *inp);
void inp_4tuple_get(struct inpcb *inp, uint32_t *laddr, uint16_t *lp,
short inp_so_options(const struct inpcb *inp);
#define in6pcb inpcb /* for KAME src sync over BSD*'s */
#define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb)
LIST_HEAD(inpcbhead, inpcb);
int in_pcbbind_check_bindmulti(const struct inpcb *ni,
const struct inpcb *oi);
in_pcbgroup_byinpcb(struct inpcb *);
void in_pcbgroup_remove(struct inpcb *);
void in_pcbgroup_update(struct inpcb *);
void in_pcbgroup_update_mbuf(struct inpcb *, struct mbuf *);
int in_pcbbind(struct inpcb *, struct sockaddr *, struct ucred *);
int in_pcb_lport(struct inpcb *, struct in_addr *, u_short *,
int in_pcbbind_setup(struct inpcb *, struct sockaddr *, in_addr_t *,
int in_pcbconnect(struct inpcb *, struct sockaddr *, struct ucred *);
int in_pcbconnect_mbuf(struct inpcb *, struct sockaddr *, struct ucred *,
int in_pcbconnect_setup(struct inpcb *, struct sockaddr *, in_addr_t *,
u_short *, in_addr_t *, u_short *, struct inpcb **,
void in_pcbdetach(struct inpcb *);
void in_pcbdisconnect(struct inpcb *);
void in_pcbdrop(struct inpcb *);
void in_pcbfree(struct inpcb *);
int in_pcbinshash(struct inpcb *);
int in_pcbinshash_nopcbgroup(struct inpcb *);
int in_pcbladdr(struct inpcb *, struct in_addr *, struct in_addr *,
struct inpcb *
struct inpcb *
struct inpcb *
int, struct inpcb *(*)(struct inpcb *, int));
void in_pcbref(struct inpcb *);
void in_pcbrehash(struct inpcb *);
void in_pcbrehash_mbuf(struct inpcb *, struct mbuf *);
int in_pcbrele(struct inpcb *);
int in_pcbrele_rlocked(struct inpcb *);
int in_pcbrele_wlocked(struct inpcb *);
struct inpcb;
int inp_getmoptions(struct inpcb *, struct sockopt *);
int inp_setmoptions(struct inpcb *, struct sockopt *);
struct inpcb *);
void ip_savecontrol(struct inpcb *, struct mbuf **, struct ip *,
int udp_newudpcb(struct inpcb *);
struct inpcb *udp_notify(struct inpcb *inp, int errno);
struct inpcb;
typedef void(*udp_tun_func_t)(struct mbuf *, int off, struct inpcb *,
struct inpcb *so_sotoinpcb(struct socket *so);
struct inpcb *inp = so->so_pcb;
struct inpcb *so_pcb; /* protocol control block */
struct inpcb *inp_next, *inp_prev; /* pointers to other pcb's */
struct inpcb *inp_head; /* pointer back to chain of inpcb's */
#define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb)
struct inpcb *t_inpcb; /* back pointer to internet pcb */