|
|
1.1 ! root 1: /* tsap.h - include file for transport users (TS-USER) */ ! 2: ! 3: /* ! 4: * $Header: /f/osi/h/RCS/tsap.h,v 7.2 90/05/08 08:54:36 mrose Exp $ ! 5: * ! 6: * ! 7: * $Log: tsap.h,v $ ! 8: * Revision 7.2 90/05/08 08:54:36 mrose ! 9: * touch-up ! 10: * ! 11: * Revision 7.1 89/12/18 17:50:50 mrose ! 12: * update ! 13: * ! 14: * Revision 7.0 89/11/23 21:56:08 mrose ! 15: * Release 6.0 ! 16: * ! 17: */ ! 18: ! 19: /* ! 20: * NOTICE ! 21: * ! 22: * Acquisition, use, and distribution of this module and related ! 23: * materials are subject to the restrictions of a license agreement. ! 24: * Consult the Preface in the User's Manual for the full terms of ! 25: * this agreement. ! 26: * ! 27: */ ! 28: ! 29: ! 30: #ifndef _TSAP_ ! 31: #define _TSAP_ ! 32: ! 33: #ifndef _MANIFEST_ ! 34: #include "manifest.h" ! 35: #endif ! 36: #ifndef _GENERAL_ ! 37: #include "general.h" ! 38: #endif ! 39: #ifndef _ISOADDRS_ ! 40: #include "isoaddrs.h" ! 41: #endif ! 42: ! 43: /* */ ! 44: ! 45: struct TSAPstart { /* T-CONNECT.INDICATON */ ! 46: int ts_sd; /* TRANSPORT descriptor */ ! 47: ! 48: struct TSAPaddr ts_calling; /* address of peer calling */ ! 49: struct TSAPaddr ts_called; /* address of peer called */ ! 50: ! 51: int ts_expedited; /* EXPEDITED DATA ok */ ! 52: ! 53: int ts_tsdusize; /* largest atomic TSDU */ ! 54: ! 55: struct QOStype ts_qos; /* quality of service */ ! 56: ! 57: /* initial DATA from peer */ ! 58: #define TS_SIZE 32 ! 59: int ts_cc; /* length */ ! 60: char ts_data[TS_SIZE]; /* data */ ! 61: }; ! 62: ! 63: ! 64: struct TSAPconnect { /* T-CONNECT.CONFIRMATION */ ! 65: int tc_sd; /* TRANSPORT descriptor */ ! 66: ! 67: struct TSAPaddr tc_responding;/* address of peer responding */ ! 68: ! 69: int tc_expedited; /* EXPEDITED DATA ok */ ! 70: ! 71: int tc_tsdusize; /* largest atomic TSDU */ ! 72: ! 73: struct QOStype tc_qos; /* quality of service */ ! 74: ! 75: /* initial DATA from peer */ ! 76: #define TC_SIZE 32 ! 77: int tc_cc; /* length */ ! 78: char tc_data[TC_SIZE]; /* data */ ! 79: }; ! 80: ! 81: ! 82: struct TSAPdata { /* T-READ.INDICATION */ ! 83: int tx_expedited; ! 84: ! 85: /* DATA from peer */ ! 86: #define TX_SIZE 16 /* EXPEDITED DATA only */ ! 87: int tx_cc; /* total length */ ! 88: struct qbuf tx_qbuf; /* chained data */ ! 89: }; ! 90: #define TXFREE(tx) QBFREE (&((tx) -> tx_qbuf)) ! 91: ! 92: ! 93: struct TSAPdisconnect { /* T-DISCONNECT.INDICATION */ ! 94: int td_reason; /* reason for DISCONNECT, from ISO8072: */ ! 95: #define DR_BASE 0x80 ! 96: #define DR_NORMAL (DR_BASE + 0) /* NORMAL disconnect by SESSION ! 97: entity */ ! 98: #define DR_REMOTE (DR_BASE + 1) /* Remote TRANSPORT entity congested at ! 99: connect request time */ ! 100: #define DR_CONNECT (DR_BASE + 2) /* Connection negotiation failed */ ! 101: #define DR_DUPLICATE (DR_BASE + 3) /* Duplicate source reference detected ! 102: for the same pair of NSAPs */ ! 103: #define DR_MISMATCH (DR_BASE + 4) /* Mismatched references */ ! 104: #define DR_PROTOCOL (DR_BASE + 5) /* Protocol error */ ! 105: #define DR_OVERFLOW (DR_BASE + 7) /* Reference overflow */ ! 106: #define DR_REFUSED (DR_BASE + 8) /* Connect request refused on this ! 107: network connection */ ! 108: #define DR_LENGTH (DR_BASE + 10) /* Header or parameter length ! 109: invalid */ ! 110: ! 111: /* begin UNOFFICIAL */ ! 112: #define DR_NETWORK (DR_BASE + 11) /* Network disconnect */ ! 113: #define DR_PARAMETER (DR_BASE + 12) /* Invalid parameter */ ! 114: #define DR_OPERATION (DR_BASE + 13) /* Invalid operation */ ! 115: #define DR_TIMER (DR_BASE + 14) /* Timer expired */ ! 116: #define DR_WAITING (DR_BASE + 15) /* Indications waiting */ ! 117: /* end UNOFFICIAL */ ! 118: ! 119: #define DR_UNKNOWN 0 /* Reason not specifed */ ! 120: #define DR_CONGEST 1 /* Congestion at TSAP */ ! 121: #define DR_SESSION 2 /* Session entity not attached to ! 122: TSAP */ ! 123: #define DR_ADDRESS 3 /* Address unknown */ ! 124: ! 125: #ifdef notdef ! 126: #define DR_FATAL(r) ((r) < DR_BASE || (r) < DR_PARAMETER) ! 127: #define DR_OFFICIAL(r) ((r) < DR_BASE || (r) < DR_NETWORK) ! 128: #else ! 129: #define DR_FATAL(r) ((r) < DR_PARAMETER) ! 130: #define DR_OFFICIAL(r) ((r) < DR_NETWORK) ! 131: #endif ! 132: ! 133: /* disconnect DATA from peer */ ! 134: #define TD_SIZE 64 ! 135: int td_cc; /* length */ ! 136: char td_data[TD_SIZE]; /* data */ ! 137: }; ! 138: ! 139: /* */ ! 140: ! 141: extern char *tsapversion; ! 142: ! 143: ! 144: int TInit (); /* T-CONNECT.INDICATION */ ! 145: ! 146: int TConnResponse (); /* T-CONNECT.RESPONSE */ ! 147: /* T-CONNECT.REQUEST (backwards-compatible) */ ! 148: #define TConnRequest(a1,a2,a3,a4,a5,a6,a7,a8) \ ! 149: TAsynConnRequest(a1,a2,a3,a4,a5,a6,a7,a8,0) ! 150: int TAsynConnRequest (); /* T-(ASYN-)CONNECT.REQUEST */ ! 151: int TAsynRetryRequest (); /* T-ASYN-RETRY.REQUEST (pseudo) */ ! 152: int TDataRequest (); /* T-DATA.REQUEST */ ! 153: int TWriteRequest (); /* T-WRITE.REQUEST (pseudo) */ ! 154: int TExpdRequest (); /* T-EXPEDITED-DATA.REQUEST */ ! 155: int TReadRequest (); /* T-READ.REQUEST (pseudo) */ ! 156: int TDiscRequest (); /* T-DISCONNECT.REQUEST */ ! 157: ! 158: int TSetIndications (); /* define vectors for INDICATION events */ ! 159: int TSelectMask (); /* map transport descriptors for select() */ ! 160: int TSelectOctets (); /* estimate of octets that might be returned */ ! 161: int TGetAddresses (); /* get TSAPs */ ! 162: int TSetManager (); /* defining transport manager */ ! 163: ! 164: char *TErrString (); /* return TSAP error code in string form */ ! 165: ! 166: int TNetListen (); /* start listenting on an TSAP */ ! 167: int TNetUnique (); /* start listenting on a set of unique TSAPs */ ! 168: #define TNetAccept(p,v,n,r,w,e,s,t) \ ! 169: TNetAcceptAux ((p), (v), NULLIP, NULLTA, (n), (r), (w), (e), (s), (t)) ! 170: int TNetAcceptAux (); /* accept a call on an TSAP */ ! 171: int TNetClose (); /* stop listening on an TSAP */ ! 172: int TSetQueuesOK (); /* enable/disable queued (non-blocking) ! 173: writes */ ! 174: ! 175: #define TLocalHostName getlocalhost ! 176: char *TLocalHostName (); /* return name of local host (sigh) */ ! 177: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.