|
|
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.