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