xref: /csrg-svn/sys/netiso/iso_pcb.h (revision 36390)
1*36390Ssklower /***********************************************************
2*36390Ssklower 		Copyright IBM Corporation 1987
3*36390Ssklower 
4*36390Ssklower                       All Rights Reserved
5*36390Ssklower 
6*36390Ssklower Permission to use, copy, modify, and distribute this software and its
7*36390Ssklower documentation for any purpose and without fee is hereby granted,
8*36390Ssklower provided that the above copyright notice appear in all copies and that
9*36390Ssklower both that copyright notice and this permission notice appear in
10*36390Ssklower supporting documentation, and that the name of IBM not be
11*36390Ssklower used in advertising or publicity pertaining to distribution of the
12*36390Ssklower software without specific, written prior permission.
13*36390Ssklower 
14*36390Ssklower IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
15*36390Ssklower ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
16*36390Ssklower IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
17*36390Ssklower ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
18*36390Ssklower WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
19*36390Ssklower ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
20*36390Ssklower SOFTWARE.
21*36390Ssklower 
22*36390Ssklower ******************************************************************/
23*36390Ssklower 
24*36390Ssklower /*
25*36390Ssklower  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
26*36390Ssklower  */
27*36390Ssklower /* $Header: iso_pcb.h,v 4.3 88/06/29 15:00:01 hagens Exp $ */
28*36390Ssklower /* $Source: /usr/argo/sys/netiso/RCS/iso_pcb.h,v $ */
29*36390Ssklower 
30*36390Ssklower #define	MAXX25CRUDLEN	16	/* 16 bytes of call request user data */
31*36390Ssklower 
32*36390Ssklower /*
33*36390Ssklower  * Common structure pcb for argo protocol implementation.
34*36390Ssklower  */
35*36390Ssklower struct isopcb {
36*36390Ssklower 	struct	isopcb			*isop_next,*isop_prev; /* pointers to other pcb's */
37*36390Ssklower 	struct	isopcb			*isop_head;	/* pointer back to chain of pcbs for
38*36390Ssklower 								this protocol */
39*36390Ssklower 	struct	socket			*isop_socket;	/* back pointer to socket */
40*36390Ssklower 	struct	sockaddr_iso	isop_laddr;
41*36390Ssklower #define isop_lport isop_laddr.siso_tsuffix
42*36390Ssklower #define isop_lportlen isop_laddr.siso_tsuffixlen
43*36390Ssklower 	struct	sockaddr_iso	isop_faddr;
44*36390Ssklower #define isop_fport isop_faddr.siso_tsuffix
45*36390Ssklower #define isop_fportlen isop_faddr.siso_tsuffixlen
46*36390Ssklower 	struct	route			isop_route;			/* CLNP routing entry */
47*36390Ssklower 	struct	mbuf			*isop_options;		/* CLNP options */
48*36390Ssklower 	struct	mbuf			*isop_optindex;		/* CLNP options index */
49*36390Ssklower 	struct	mbuf			*isop_clnpcache;	/* CLNP cached hdr */
50*36390Ssklower 	u_int			isop_chanmask;		/* which ones used - max 32 supported */
51*36390Ssklower 	u_int			isop_negchanmask;	/* which ones used - max 32 supported */
52*36390Ssklower 	int						isop_x25crud_len;	/* x25 call request ud */
53*36390Ssklower 	char					isop_x25crud[MAXX25CRUDLEN];
54*36390Ssklower 	struct ifnet			*isop_ifp;		/* ESIS interface assoc w/sock */
55*36390Ssklower };
56*36390Ssklower 
57*36390Ssklower #define	sotoisopcb(so)	((struct isopcb *)(so)->so_npcb)
58*36390Ssklower 
59*36390Ssklower #ifdef KERNEL
60*36390Ssklower struct	isopcb *iso_pcblookup();
61*36390Ssklower #endif
62