xref: /original-bsd/sys/netinet/in_pcb.h (revision 53787e02)
1 /*
2  * Copyright (c) 1982 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)in_pcb.h	6.2 (Berkeley) 06/08/85
7  */
8 
9 /*
10  * Common structure pcb for internet protocol implementation.
11  * Here are stored pointers to local and foreign host table
12  * entries, local and foreign socket numbers, and pointers
13  * up (to a socket structure) and down (to a protocol-specific)
14  * control block.
15  */
16 struct inpcb {
17 	struct	inpcb *inp_next,*inp_prev;
18 					/* pointers to other pcb's */
19 	struct	inpcb *inp_head;	/* pointer back to chain of inpcb's
20 					   for this protocol */
21 	struct	in_addr inp_faddr;	/* foreign host table entry */
22 	u_short	inp_fport;		/* foreign port */
23 	struct	in_addr inp_laddr;	/* local host table entry */
24 	u_short	inp_lport;		/* local port */
25 	struct	socket *inp_socket;	/* back pointer to socket */
26 	caddr_t	inp_ppcb;		/* pointer to per-protocol pcb */
27 	struct	route inp_route;	/* placeholder for routing entry */
28 };
29 
30 #define	INPLOOKUP_WILDCARD	1
31 #define	INPLOOKUP_SETLOCAL	2
32 
33 #define	sotoinpcb(so)	((struct inpcb *)(so)->so_pcb)
34 
35 #ifdef KERNEL
36 struct	inpcb *in_pcblookup();
37 #endif
38