xref: /original-bsd/sys/netinet/in_pcb.h (revision df6dbad5)
1 /*
2  * Copyright (c) 1982, 1986 Regents of the University of California.
3  * All rights reserved.
4  *
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) 12/07/87
13  */
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  */
22 struct inpcb {
23 	struct	inpcb *inp_next,*inp_prev;
24 					/* pointers to other pcb's */
25 	struct	inpcb *inp_head;	/* pointer back to chain of inpcb's
26 					   for this protocol */
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 */
33 	struct	route inp_route;	/* placeholder for routing entry */
34 	struct	mbuf *inp_options;	/* IP options */
35 };
36 
37 #define	INPLOOKUP_WILDCARD	1
38 #define	INPLOOKUP_SETLOCAL	2
39 
40 #define	sotoinpcb(so)	((struct inpcb *)(so)->so_pcb)
41 
42 #ifdef KERNEL
43 struct	inpcb *in_pcblookup();
44 #endif
45