|
|
1.1 root 1: /*
2: * Copyright (c) 1982, 1986 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 7.1 (Berkeley) 6/5/86
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: struct mbuf *inp_options; /* IP options */
29: };
30:
31: #define INPLOOKUP_WILDCARD 1
32: #define INPLOOKUP_SETLOCAL 2
33:
34: #define sotoinpcb(so) ((struct inpcb *)(so)->so_pcb)
35:
36: #ifdef KERNEL
37: struct inpcb *in_pcblookup();
38: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.