date and time created 88/12/14 15:29:27 by sklower
[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 5 * Redistribution and use in source and binary forms are permitted
616d42db
KB
6 * provided that the above copyright notice and this paragraph are
7 * duplicated in all such forms and that any documentation,
8 * advertising materials, and other materials related to such
9 * distribution and use acknowledge that the software was developed
10 * by the University of California, Berkeley. The name of the
11 * University may not be used to endorse or promote products derived
12 * from this software without specific prior written permission.
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
2b6b6284 16 *
616d42db 17 * @(#)in_pcb.h 7.3 (Berkeley) %G%
8ae0e4b4 18 */
bae4854b
BJ
19
20/*
21 * Common structure pcb for internet protocol implementation.
22 * Here are stored pointers to local and foreign host table
23 * entries, local and foreign socket numbers, and pointers
24 * up (to a socket structure) and down (to a protocol-specific)
25 * control block.
26 */
27struct inpcb {
28 struct inpcb *inp_next,*inp_prev;
29 /* pointers to other pcb's */
b454c3ea
BJ
30 struct inpcb *inp_head; /* pointer back to chain of inpcb's
31 for this protocol */
bae4854b
BJ
32 struct in_addr inp_faddr; /* foreign host table entry */
33 u_short inp_fport; /* foreign port */
34 struct in_addr inp_laddr; /* local host table entry */
35 u_short inp_lport; /* local port */
36 struct socket *inp_socket; /* back pointer to socket */
37 caddr_t inp_ppcb; /* pointer to per-protocol pcb */
c124e997 38 struct route inp_route; /* placeholder for routing entry */
ae484c2c 39 struct mbuf *inp_options; /* IP options */
bae4854b
BJ
40};
41
ebcadd38
BJ
42#define INPLOOKUP_WILDCARD 1
43#define INPLOOKUP_SETLOCAL 2
44
bae4854b
BJ
45#define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb)
46
47#ifdef KERNEL
48struct inpcb *in_pcblookup();
49#endif