add Berkeley specific copyright
[unix-history] / usr / src / sys / netinet / in_pcb.h
CommitLineData
8ae0e4b4 1/*
0880b18e 2 * Copyright (c) 1982, 1986 Regents of the University of California.
2b6b6284 3 * All rights reserved.
8ae0e4b4 4 *
2b6b6284
KB
5 * Redistribution and use in source and binary forms are permitted
6 * provided that this notice is preserved and that due credit is given
7 * to the University of California at Berkeley. The name of the University
8 * may not be used to endorse or promote products derived from this
9 * software without specific prior written permission. This software
10 * is provided ``as is'' without express or implied warranty.
11 *
12 * @(#)in_pcb.h 7.2 (Berkeley) %G%
8ae0e4b4 13 */
bae4854b
BJ
14
15/*
16 * Common structure pcb for internet protocol implementation.
17 * Here are stored pointers to local and foreign host table
18 * entries, local and foreign socket numbers, and pointers
19 * up (to a socket structure) and down (to a protocol-specific)
20 * control block.
21 */
22struct inpcb {
23 struct inpcb *inp_next,*inp_prev;
24 /* pointers to other pcb's */
b454c3ea
BJ
25 struct inpcb *inp_head; /* pointer back to chain of inpcb's
26 for this protocol */
bae4854b
BJ
27 struct in_addr inp_faddr; /* foreign host table entry */
28 u_short inp_fport; /* foreign port */
29 struct in_addr inp_laddr; /* local host table entry */
30 u_short inp_lport; /* local port */
31 struct socket *inp_socket; /* back pointer to socket */
32 caddr_t inp_ppcb; /* pointer to per-protocol pcb */
c124e997 33 struct route inp_route; /* placeholder for routing entry */
ae484c2c 34 struct mbuf *inp_options; /* IP options */
bae4854b
BJ
35};
36
ebcadd38
BJ
37#define INPLOOKUP_WILDCARD 1
38#define INPLOOKUP_SETLOCAL 2
39
bae4854b
BJ
40#define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb)
41
42#ifdef KERNEL
43struct inpcb *in_pcblookup();
44#endif