|
|
1.1 root 1: /*
2: * Copyright (c) 1984, 1985, 1986, 1987 Regents of the University of California.
3: * All rights reserved.
4: *
5: * Redistribution is only permitted until one year after the first shipment
6: * of 4.4BSD by the Regents. Otherwise, redistribution and use in source and
7: * binary forms are permitted provided that: (1) source distributions retain
8: * this entire copyright notice and comment, and (2) distributions including
9: * binaries display the following acknowledgement: This product includes
10: * software developed by the University of California, Berkeley and its
11: * contributors'' in the documentation or other materials provided with the
12: * distribution and in all advertising materials mentioning features or use
13: * of this software. Neither the name of the University nor the names of
14: * its contributors may be used to endorse or promote products derived from
15: * this software without specific prior written permission.
16: * THIS SOFTWARE IS PROVIDED AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
17: * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
18: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19: *
20: * @(#)ns_pcb.h 7.4 (Berkeley) 6/28/90
21: */
22:
23: /*
24: * Ns protocol interface control block.
25: */
26: struct nspcb {
27: struct nspcb *nsp_next; /* doubly linked list */
28: struct nspcb *nsp_prev;
29: struct nspcb *nsp_head;
30: struct socket *nsp_socket; /* back pointer to socket */
31: struct ns_addr nsp_faddr; /* destination address */
32: struct ns_addr nsp_laddr; /* socket's address */
33: caddr_t nsp_pcb; /* protocol specific stuff */
34: struct route nsp_route; /* routing information */
35: struct ns_addr nsp_lastdst; /* validate cached route for dg socks*/
36: long nsp_notify_param; /* extra info passed via ns_pcbnotify*/
37: short nsp_flags;
38: u_char nsp_dpt; /* default packet type for idp_output*/
39: u_char nsp_rpt; /* last received packet type by
40: idp_input() */
41: };
42:
43: /* possible flags */
44:
45: #define NSP_IN_ABORT 0x1 /* calling abort through socket */
46: #define NSP_RAWIN 0x2 /* show headers on input */
47: #define NSP_RAWOUT 0x4 /* show header on output */
48: #define NSP_ALL_PACKETS 0x8 /* Turn off higher proto processing */
49:
50: #define NS_WILDCARD 1
51:
52: #define nsp_lport nsp_laddr.x_port
53: #define nsp_fport nsp_faddr.x_port
54:
55: #define sotonspcb(so) ((struct nspcb *)((so)->so_pcb))
56:
57: /*
58: * Nominal space allocated to a ns socket.
59: */
60: #define NSSNDQ 2048
61: #define NSRCVQ 2048
62:
63:
64: #ifdef KERNEL
65: struct nspcb nspcb; /* head of list */
66: struct nspcb *ns_pcblookup();
67: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.