33 #ifndef _USER_INPCB_H_ 34 #define _USER_INPCB_H_ 39 #define in6p_sp inp_sp 74 struct in6_addr ie6_foreign;
79 struct in6_addr ie6_local;
81 #define ie_faddr ie_dependfaddr.ie46_foreign.ia46_addr4 82 #define ie_laddr ie_dependladdr.ie46_local.ia46_addr4 83 #define ie6_faddr ie_dependfaddr.ie6_foreign 84 #define ie6_laddr ie_dependladdr.ie6_local 98 #define inc_isipv6 inc_flags 99 #define inc_fport inc_ie.ie_fport 100 #define inc_lport inc_ie.ie_lport 101 #define inc_faddr inc_ie.ie_faddr 102 #define inc_laddr inc_ie.ie_laddr 103 #define inc6_faddr inc_ie.ie6_faddr 104 #define inc6_laddr inc_ie.ie6_laddr 121 #define INP_IPV6PROTO 0x4 122 #define INP_TIMEWAIT 0x8 123 #define INP_ONESBCAST 0x10 124 #define INP_DROPPED 0x20 125 #define INP_SOCKREF 0x40 126 #define INP_CONN 0x80 146 #define inp_fport inp_inc.inc_fport 147 #define inp_lport inp_inc.inc_lport 148 #define inp_faddr inp_inc.inc_faddr 149 #define inp_laddr inp_inc.inc_laddr 150 #define inp_ip_tos inp_depend4.inp4_ip_tos 151 #define inp_options inp_depend4.inp4_options 152 #define inp_moptions inp_depend4.inp4_moptions 160 struct ip6_moptions *inp6_moptions;
170 #define inp_zero_size offsetof(struct inpcb, inp_gencnt) 173 #define in6p_faddr inp_inc.inc6_faddr 174 #define in6p_laddr inp_inc.inc6_laddr 175 #define in6p_hops inp_depend6.inp6_hops 176 #define in6p_ip6_nxt inp_ip_p 177 #define in6p_flowinfo inp_flow 178 #define in6p_vflag inp_vflag 179 #define in6p_options inp_depend6.inp6_options 180 #define in6p_outputopts inp_depend6.inp6_outputopts 182 #define in6p_moptions inp_depend6.inp6_moptions 184 #define in6p_icmp6filt inp_depend6.inp6_icmp6filt 185 #define in6p_cksum inp_depend6.inp6_cksum 186 #define in6p_flags inp_flags 187 #define in6p_socket inp_socket 188 #define in6p_lport inp_lport 189 #define in6p_fport inp_fport 190 #define in6p_ppcb inp_ppcb 201 struct inpcbhead phd_pcblist;
254 #define INP_LOCK_INIT(inp, d, t) \ 255 mtx_init(&(inp)->inp_mtx, (d), (t), MTX_DEF | MTX_RECURSE | MTX_DUPOK) 256 #define INP_LOCK_DESTROY(inp) mtx_destroy(&(inp)->inp_mtx) 257 #define INP_LOCK(inp) mtx_lock(&(inp)->inp_mtx) 258 #define INP_UNLOCK(inp) mtx_unlock(&(inp)->inp_mtx) 259 #define INP_LOCK_ASSERT(inp) mtx_assert(&(inp)->inp_mtx, MA_OWNED) 260 #define INP_UNLOCK_ASSERT(inp) mtx_assert(&(inp)->inp_mtx, MA_NOTOWNED) 262 #define INP_INFO_LOCK_INIT(ipi, d) \ 263 mtx_init(&(ipi)->ipi_mtx, (d), NULL, MTX_DEF | MTX_RECURSE) 264 #define INP_INFO_LOCK_DESTROY(ipi) mtx_destroy(&(ipi)->ipi_mtx) 265 #define INP_INFO_RLOCK(ipi) mtx_lock(&(ipi)->ipi_mtx) 266 #define INP_INFO_WLOCK(ipi) mtx_lock(&(ipi)->ipi_mtx) 267 #define INP_INFO_RUNLOCK(ipi) mtx_unlock(&(ipi)->ipi_mtx) 268 #define INP_INFO_WUNLOCK(ipi) mtx_unlock(&(ipi)->ipi_mtx) 269 #define INP_INFO_RLOCK_ASSERT(ipi) mtx_assert(&(ipi)->ipi_mtx, MA_OWNED) 270 #define INP_INFO_WLOCK_ASSERT(ipi) mtx_assert(&(ipi)->ipi_mtx, MA_OWNED) 271 #define INP_INFO_UNLOCK_ASSERT(ipi) mtx_assert(&(ipi)->ipi_mtx, MA_NOTOWNED) 273 #define INP_PCBHASH(faddr, lport, fport, mask) \ 274 (((faddr) ^ ((faddr) >> 16) ^ ntohs((lport) ^ (fport))) & (mask)) 275 #define INP_PCBPORTHASH(lport, mask) \ 276 (ntohs((lport)) & (mask)) 279 #define INP_RECVOPTS 0x01 280 #define INP_RECVRETOPTS 0x02 281 #define INP_RECVDSTADDR 0x04 282 #define INP_HDRINCL 0x08 283 #define INP_HIGHPORT 0x10 284 #define INP_LOWPORT 0x20 285 #define INP_ANONPORT 0x40 286 #define INP_RECVIF 0x80 287 #define INP_MTUDISC 0x100 288 #define INP_FAITH 0x200 289 #define INP_RECVTTL 0x400 290 #define INP_DONTFRAG 0x800 292 #define IN6P_IPV6_V6ONLY 0x008000 294 #define IN6P_PKTINFO 0x010000 295 #define IN6P_HOPLIMIT 0x020000 296 #define IN6P_HOPOPTS 0x040000 297 #define IN6P_DSTOPTS 0x080000 298 #define IN6P_RTHDR 0x100000 299 #define IN6P_RTHDRDSTOPTS 0x200000 300 #define IN6P_TCLASS 0x400000 301 #define IN6P_AUTOFLOWLABEL 0x800000 302 #define IN6P_RFC2292 0x40000000 303 #define IN6P_MTU 0x80000000 305 #define INP_CONTROLOPTS (INP_RECVOPTS|INP_RECVRETOPTS|INP_RECVDSTADDR|\ 306 INP_RECVIF|INP_RECVTTL|\ 307 IN6P_PKTINFO|IN6P_HOPLIMIT|IN6P_HOPOPTS|\ 308 IN6P_DSTOPTS|IN6P_RTHDR|IN6P_RTHDRDSTOPTS|\ 309 IN6P_TCLASS|IN6P_AUTOFLOWLABEL|IN6P_RFC2292|\ 311 #define INP_UNMAPPABLEOPTS (IN6P_HOPOPTS|IN6P_DSTOPTS|IN6P_RTHDR|\ 312 IN6P_TCLASS|IN6P_AUTOFLOWLABEL) 315 #define IN6P_HIGHPORT INP_HIGHPORT 316 #define IN6P_LOWPORT INP_LOWPORT 317 #define IN6P_ANONPORT INP_ANONPORT 318 #define IN6P_RECVIF INP_RECVIF 319 #define IN6P_MTUDISC INP_MTUDISC 320 #define IN6P_FAITH INP_FAITH 321 #define IN6P_CONTROLOPTS INP_CONTROLOPTS 327 #define INPLOOKUP_WILDCARD 1 328 #define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb) 329 #define sotoin6pcb(so) sotoinpcb(so) 331 #define INP_SOCKAF(so) so->so_proto->pr_domain->dom_family 333 #define INP_CHECK_SOCKAF(so, af) (INP_SOCKAF(so) == af) 357 struct in_addr, u_int,
int);
360 struct in_addr, u_int,
int,
struct ifnet *);
void in_pcbfree(struct inpcb *)
u_int16_t inc_pad
Definition: user_inpcb.h:94
struct inpcb * in_pcblookup_local(struct inpcbinfo *, struct in_addr, u_int, int)
unsigned int uint32_t
Definition: ptypes.h:105
struct inpcbporthead * ipi_porthashbase
Definition: user_inpcb.h:226
void in_pcbremlists(struct inpcb *inp)
Definition: user_inpcb.h:67
struct inpcbpolicy * inp_sp
Definition: user_inpcb.h:138
void * inp_ppcb
Definition: user_inpcb.h:111
int in_pcbconnect(struct inpcb *, struct sockaddr *, struct ucred *)
short inp6_hops
Definition: user_inpcb.h:166
Definition: user_inpcb.h:199
Definition: user_inpcb.h:91
Definition: user_socketvar.h:125
u_int ipi_count
Definition: user_inpcb.h:214
int ipport_lastauto
Definition: user_environment.c:52
void in_pcbrehash(struct inpcb *)
Definition: user_inpcb.h:108
EGLenum EGLObjectKHR EGLLabelKHR label
Definition: eglext.h:121
Definition: user_uma.h:56
void in_pcbdrop(struct inpcb *)
int in_pcbbind(struct inpcb *, struct sockaddr *, struct ucred *)
void db_print_inpcb(struct inpcb *inp, const char *name, int indent)
u_short ipi_lasthi
Definition: user_inpcb.h:234
u_int8_t inc_flags
Definition: user_inpcb.h:92
struct mbuf * inp6_options
Definition: user_inpcb.h:155
void in_pcbdisconnect(struct inpcb *)
uint32_t inp_ispare1
Definition: user_inpcb.h:130
Definition: user_inpcb.h:209
u_char inp_ip_ttl
Definition: user_inpcb.h:127
struct inpcb * in_pcblookup_hash(struct inpcbinfo *, struct in_addr, u_int, struct in_addr, u_int, int, struct ifnet *)
struct socket * inp_socket
Definition: user_inpcb.h:113
u_long ipi_porthashmask
Definition: user_inpcb.h:227
int ipport_firstauto
Definition: user_environment.c:52
int in_getpeeraddr(struct socket *so, struct sockaddr **nam)
u_char inp4_ip_tos
Definition: user_inpcb.h:142
struct ip6_pktopts * inp6_outputopts
Definition: user_inpcb.h:157
struct uma_zone * ipi_zone
Definition: user_inpcb.h:239
struct inpcbhead * ipi_listhead
Definition: user_inpcb.h:213
struct inpcbport * inp_phd
Definition: user_inpcb.h:169
u_int8_t inc_len
Definition: user_inpcb.h:93
struct mbuf * inp4_options
Definition: user_inpcb.h:143
EGLImageKHR EGLint * name
Definition: eglext.h:851
void in_pcbpurgeif0(struct inpcbinfo *, struct ifnet *)
void in_pcbsetsolabel(struct socket *so)
void ipport_tick(void *xtp)
u_int16_t ie_fport
Definition: user_inpcb.h:68
struct icmp6_filter * inp6_icmp6filt
Definition: user_inpcb.h:163
Definition: user_mbuf.h:231
u_int16_t ie_lport
Definition: user_inpcb.h:69
struct inpcbhead * ipi_hashbase
Definition: user_inpcb.h:220
struct inpcbinfo * inp_pcbinfo
Definition: user_inpcb.h:112
u_int32_t inp_flow
Definition: user_inpcb.h:115
int in_pcbinshash(struct inpcb *)
struct callout ipport_tick_callout
struct label * inp_label
Definition: user_inpcb.h:137
u_short ipi_lastlow
Definition: user_inpcb.h:233
u_char inp_ip_minttl
Definition: user_inpcb.h:129
int in_pcballoc(struct socket *, struct inpcbinfo *)
u_char inp_ip_p
Definition: user_inpcb.h:128
Definition: user_inpcb.h:58
int inp6_cksum
Definition: user_inpcb.h:165
Definition: sctp_os_userspace.h:427
int inp_flags
Definition: user_inpcb.h:116
void in_pcbdetach(struct inpcb *)
u_long ipi_hashmask
Definition: user_inpcb.h:221
LIST_HEAD(inpcbhead, inpcb)
void in_pcbnotifyall(struct inpcbinfo *pcbinfo, struct in_addr, int, struct inpcb *(*)(struct inpcb *, int))
void in_pcbsosetlabel(struct socket *so)
u_char inp_vflag
Definition: user_inpcb.h:118
u_short ipi_lastport
Definition: user_inpcb.h:232
#define LIST_ENTRY(type)
Definition: user_queue.h:350
struct ip_moptions * inp4_moptions
Definition: user_inpcb.h:144
u_int32_t ia46_pad32[3]
Definition: user_inpcb.h:59
struct in_addr ia46_addr4
Definition: user_inpcb.h:60
int in_getsockaddr(struct socket *so, struct sockaddr **nam)
u_short phd_port
Definition: user_inpcb.h:202