|
|
1.1 root 1: /***********************************************************
2: Copyright IBM Corporation 1987
3:
4: All Rights Reserved
5:
6: Permission to use, copy, modify, and distribute this software and its
7: documentation for any purpose and without fee is hereby granted,
8: provided that the above copyright notice appear in all copies and that
9: both that copyright notice and this permission notice appear in
10: supporting documentation, and that the name of IBM not be
11: used in advertising or publicity pertaining to distribution of the
12: software without specific, written prior permission.
13:
14: IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15: ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16: IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17: ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18: WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20: SOFTWARE.
21:
22: ******************************************************************/
23:
24: /*
25: * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
26: */
27: /* $Header: iso_pcb.h,v 4.3 88/06/29 15:00:01 hagens Exp $ */
28: /* $Source: /usr/argo/sys/netiso/RCS/iso_pcb.h,v $ */
29: /* @(#)iso_pcb.h 7.3 (Berkeley) 8/29/89 */
30:
31: #define MAXX25CRUDLEN 16 /* 16 bytes of call request user data */
32:
33: /*
34: * Common structure pcb for argo protocol implementation.
35: */
36: struct isopcb {
37: struct isopcb *isop_next,*isop_prev; /* pointers to other pcb's */
38: struct isopcb *isop_head; /* pointer back to chain of pcbs for
39: this protocol */
40: struct socket *isop_socket; /* back pointer to socket */
41: struct sockaddr_iso *isop_laddr;
42: struct sockaddr_iso *isop_faddr;
43: struct route_iso {
44: struct rtentry *ro_rt;
45: struct sockaddr_iso ro_dst;
46: } isop_route; /* CLNP routing entry */
47: struct mbuf *isop_options; /* CLNP options */
48: struct mbuf *isop_optindex; /* CLNP options index */
49: struct mbuf *isop_clnpcache; /* CLNP cached hdr */
50: u_int isop_chanmask; /* which ones used - max 32 supported */
51: u_int isop_negchanmask; /* which ones used - max 32 supported */
52: u_short isop_lport; /* MISLEADLING work var */
53: int isop_x25crud_len; /* x25 call request ud */
54: char isop_x25crud[MAXX25CRUDLEN];
55: struct ifaddr *isop_ifa; /* ESIS interface assoc w/sock */
56: struct sockaddr_iso isop_sladdr, /* preallocated laddr */
57: isop_sfaddr; /* preallocated faddr */
58: };
59:
60: #ifdef sotorawcb
61: /*
62: * Common structure pcb for raw clnp protocol access.
63: * Here are clnp specific extensions to the raw control block,
64: * and space is allocated to the necessary sockaddrs.
65: */
66: struct rawisopcb {
67: struct rawcb risop_rcb; /* common control block prefix */
68: int risop_flags; /* flags, e.g. raw sockopts */
69: struct isopcb risop_isop; /* space for bound addresses, routes etc.*/
70: };
71: #endif
72:
73: #define sotoisopcb(so) ((struct isopcb *)(so)->so_pcb)
74: #define sotorawisopcb(so) ((struct rawisopcb *)(so)->so_pcb)
75:
76: #ifdef KERNEL
77: struct isopcb *iso_pcblookup();
78: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.