/* IBM_PROLOG_BEGIN_TAG */ /* This is an automatically generated prolog. */ /* */ /* bos720 src/bos/usr/include/netiso/iso_pcb.h 1.5 */ /* */ /* Licensed Materials - Property of IBM */ /* */ /* COPYRIGHT International Business Machines Corp. 1988,1991 */ /* All Rights Reserved */ /* */ /* US Government Users Restricted Rights - Use, duplication or */ /* disclosure restricted by GSA ADP Schedule Contract with IBM Corp. */ /* */ /* IBM_PROLOG_END_TAG */ /* @(#)53 1.5 src/bos/usr/include/netiso/iso_pcb.h, sockinc, bos720 6/26/02 14:36:00 */ /* * * COMPONENT_NAME: (SOCKET) Socket services * * FUNCTIONS: * * ORIGINS: 26 27 * * (C) COPYRIGHT International Business Machines Corp. 1988, 1989, 1991 * All Rights Reserved * Licensed Materials - Property of IBM * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with IBM Corp. *****************************************************************/ /* * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison */ /* $Header: iso_pcb.h,v 4.3 88/06/29 15:00:01 hagens Exp $ */ /* $Source: /usr/argo/sys/netiso/RCS/iso_pcb.h,v $ */ /* (#)iso_pcb.h 7.3 (Berkeley) 8/29/89 */ #define MAXX25CRUDLEN 16 /* 16 bytes of call request user data */ #ifdef __cplusplus struct rtentry; struct socket; struct ifaddr; struct mbuf; #endif /* * Common structure pcb for argo protocol implementation. */ struct isopcb { struct isopcb *isop_next,*isop_prev; /* pointers to other pcb's */ struct isopcb *isop_head; /* pointer back to chain of pcbs for this protocol */ struct socket *isop_socket; /* back pointer to socket */ struct sockaddr_iso *isop_laddr; struct sockaddr_iso *isop_faddr; struct route_iso { struct rtentry *ro_rt; struct sockaddr_iso ro_dst; } isop_route; /* CLNP routing entry */ struct mbuf *isop_options; /* CLNP options */ struct mbuf *isop_optindex; /* CLNP options index */ struct mbuf *isop_clnpcache; /* CLNP cached hdr */ u_int isop_chanmask; /* which ones used - max 32 supported */ u_int isop_negchanmask; /* which ones used - max 32 supported */ u_short isop_lport; /* MISLEADLING work var */ int isop_x25crud_len; /* x25 call request ud */ char isop_x25crud[MAXX25CRUDLEN]; struct ifaddr *isop_ifa; /* ESIS interface assoc w/sock */ struct sockaddr_iso isop_sladdr, /* preallocated laddr */ isop_sfaddr; /* preallocated faddr */ }; #ifdef sotorawcb /* * Common structure pcb for raw clnp protocol access. * Here are clnp specific extensions to the raw control block, * and space is allocated to the necessary sockaddrs. */ struct rawisopcb { struct rawcb risop_rcb; /* common control block prefix */ int risop_flags; /* flags, e.g. raw sockopts */ struct isopcb risop_isop; /* space for bound addresses, routes etc.*/ }; #endif #define sotoisopcb(so) ((struct isopcb *)(so)->so_pcb) #define sotorawisopcb(so) ((struct rawisopcb *)(so)->so_pcb) #ifdef _KERNEL struct isopcb *iso_pcblookup(); #endif