|
|
1.1 ! root 1: /* ssap.h - include file for session users (SS-USER) */ ! 2: ! 3: /* ! 4: * $Header: /f/osi/h/RCS/ssap.h,v 7.0 89/11/23 21:56:02 mrose Rel $ ! 5: * ! 6: * ! 7: * $Log: ssap.h,v $ ! 8: * Revision 7.0 89/11/23 21:56:02 mrose ! 9: * Release 6.0 ! 10: * ! 11: */ ! 12: ! 13: /* ! 14: * NOTICE ! 15: * ! 16: * Acquisition, use, and distribution of this module and related ! 17: * materials are subject to the restrictions of a license agreement. ! 18: * Consult the Preface in the User's Manual for the full terms of ! 19: * this agreement. ! 20: * ! 21: */ ! 22: ! 23: ! 24: #ifndef _SSAP_ ! 25: #define _SSAP_ ! 26: ! 27: #ifndef _MANIFEST_ ! 28: #include "manifest.h" ! 29: #endif ! 30: #ifndef _GENERAL_ ! 31: #include "general.h" ! 32: #endif ! 33: #ifndef _ISOADDRS_ ! 34: #include "isoaddrs.h" ! 35: #endif ! 36: ! 37: /* */ ! 38: ! 39: struct SSAPactid { /* Activity Identifier */ ! 40: #define SID_DATA_SIZE 6 ! 41: u_char sd_len; ! 42: char sd_data[SID_DATA_SIZE]; ! 43: }; ! 44: ! 45: struct SSAPref { /* SSAP reference */ ! 46: /* USER reference */ ! 47: #define SREF_USER_SIZE 64 ! 48: u_char sr_ulen; ! 49: char sr_udata[SREF_USER_SIZE]; ! 50: ! 51: /* COMMON reference */ ! 52: #define SREF_COMM_SIZE 64 ! 53: u_char sr_clen; ! 54: char sr_cdata[SREF_COMM_SIZE]; ! 55: ! 56: /* ADDITIONAL reference */ ! 57: #define SREF_ADDT_SIZE 4 ! 58: u_char sr_alen; ! 59: char sr_adata[SREF_ADDT_SIZE]; ! 60: ! 61: /* for S-ACTIVITY-RESUME */ ! 62: u_char sr_vlen; ! 63: char sr_vdata[SREF_USER_SIZE]; ! 64: ! 65: #define sr_calling sr_udata ! 66: #define sr_calling_len sr_ulen ! 67: #define sr_called sr_vdata ! 68: #define sr_called_len sr_vlen ! 69: }; ! 70: ! 71: /* */ ! 72: ! 73: struct SSAPstart { /* S-CONNECT.INDICATION */ ! 74: int ss_sd; /* SESSION descriptor */ ! 75: ! 76: struct SSAPref ss_connect; /* session connection identifier */ ! 77: ! 78: struct SSAPaddr ss_calling; /* address of peer calling */ ! 79: struct SSAPaddr ss_called; /* address of peer called */ ! 80: ! 81: int ss_requirements; /* session requirements */ ! 82: int ss_settings; /* initial settings of tokens */ ! 83: long ss_isn; /* initial serial number */ ! 84: ! 85: int ss_ssdusize; /* largest atomic SSDU */ ! 86: ! 87: struct QOStype ss_qos; /* quality of service */ ! 88: ! 89: /* initial DATA from peer */ ! 90: #define SS_SIZE 512 ! 91: int ss_cc; /* length */ ! 92: char *ss_data; /* data */ ! 93: }; ! 94: #define SSFREE(ss) \ ! 95: { \ ! 96: if ((ss) -> ss_data) \ ! 97: free ((ss) -> ss_data), (ss) -> ss_data = NULL; \ ! 98: } ! 99: ! 100: ! 101: struct SSAPconnect { /* S-CONNECT.CONFIRMATION */ ! 102: int sc_sd; /* SESSION descriptor */ ! 103: ! 104: struct SSAPref sc_connect; /* session connection identifier */ ! 105: ! 106: struct SSAPaddr sc_responding;/* address of peer responding */ ! 107: ! 108: int sc_result; /* result */ ! 109: #define SC_ACCEPT (-1) ! 110: ! 111: #define SC_BASE 0x80 /* reject by SSAP-provider */ ! 112: #define SC_SSAPID (SC_BASE + 1) /* SSAP identifier unknown */ ! 113: #define SC_SSUSER (SC_BASE + 2) /* SS-user not attached to SSAP */ ! 114: #define SC_CONGEST (SC_BASE + 3) /* Congestion at SSAP */ ! 115: #define SC_VERSION (SC_BASE + 4) /* Proposed protocol versions not ! 116: supported */ ! 117: ! 118: /* begin UNOFFICIAL */ ! 119: #define SC_ADDRESS (SC_BASE + 5) /* Address unknown */ ! 120: #define SC_REFUSED (SC_BASE + 6) /* Connect request refused on this ! 121: network connection */ ! 122: #define SC_TRANSPORT (SC_BASE + 7) /* Transport disconnect */ ! 123: #define SC_ABORT (SC_BASE + 8) /* Provider-initiated abort */ ! 124: #define SC_PROTOCOL (SC_BASE + 9) /* Protocol error */ ! 125: #define SC_PARAMETER (SC_BASE + 10) /* Invalid parameter */ ! 126: #define SC_OPERATION (SC_BASE + 11) /* Invalid operation */ ! 127: #define SC_TIMER (SC_BASE + 12) /* Timer expired */ ! 128: #define SC_WAITING (SC_BASE + 13) /* Indications waiting */ ! 129: /* end UNOFFICIAL */ ! 130: ! 131: /* reject by SSAP-user */ ! 132: #define SC_NOTSPECIFIED 0 /* Reason not specified */ ! 133: #define SC_CONGESTION 1 /* Temporary congestion */ ! 134: #define SC_REJECTED 2 /* Rejected */ ! 135: ! 136: #ifdef notdef ! 137: #define SC_FATAL(r) ((r) < SC_BASE || (r) < SC_PARAMETER) ! 138: #define SC_OFFICIAL(r) ((r) < SC_BASE || (r) < SC_ADDRESS) ! 139: #else ! 140: #define SC_FATAL(r) ((r) < SC_PARAMETER) ! 141: #define SC_OFFICIAL(r) ((r) < SC_ADDRESS) ! 142: #endif ! 143: ! 144: int sc_requirements; /* session requirements */ ! 145: int sc_settings; /* initial assignment of tokens */ ! 146: int sc_please; /* tokens requested by SS-user ! 147: (S-TOKEN-PLEASE.INDICATION) */ ! 148: long sc_isn; /* initial serial number */ ! 149: ! 150: int sc_ssdusize; /* largest atomic SSDU */ ! 151: ! 152: struct QOStype sc_qos; /* quality of service */ ! 153: ! 154: /* initial DATA from peer */ ! 155: #ifdef HPUX ! 156: #undef SC_SIZE ! 157: #endif ! 158: #define SC_SIZE 512 ! 159: int sc_cc; /* length */ ! 160: char *sc_data; /* data */ ! 161: char *sc_realdata; /* real head of data */ ! 162: }; ! 163: #define SCFREE(sc) \ ! 164: { \ ! 165: if ((sc) -> sc_realdata) \ ! 166: free ((sc) -> sc_realdata), \ ! 167: (sc) -> sc_realdata = (sc) -> sc_data = NULL; \ ! 168: else \ ! 169: if ((sc) -> sc_data) \ ! 170: free ((sc) -> sc_data), (sc) -> sc_data = NULL; \ ! 171: } ! 172: ! 173: ! 174: /* SESSION requirements */ ! 175: #define SR_HALFDUPLEX 0x0001 /* half-duplex */ ! 176: #define SR_DUPLEX 0x0002 /* full-duplex */ ! 177: #define SR_EXPEDITED 0x0004 /* expedited data transfer */ ! 178: #define SR_MINORSYNC 0x0008 /* minor synchronize */ ! 179: #define SR_MAJORSYNC 0x0010 /* major synchronize */ ! 180: #define SR_RESYNC 0x0020 /* resynchronize */ ! 181: #define SR_ACTIVITY 0x0040 /* activity management */ ! 182: #define SR_NEGOTIATED 0x0080 /* negotiated release */ ! 183: #define SR_CAPABILITY 0x0100 /* capability data transfer */ ! 184: #define SR_EXCEPTIONS 0x0200 /* exceptions reporting */ ! 185: #define SR_TYPEDATA 0x0400 /* typed data transfer */ ! 186: #define SR_SYMMETRIC 0x0800 /* symmetric synchronize */ ! 187: ! 188: #define SR_RLS_EXISTS SR_NEGOTIATED ! 189: #define SR_MAJ_EXISTS (SR_MAJORSYNC | SR_ACTIVITY) ! 190: #define SR_ACT_EXISTS SR_ACTIVITY ! 191: #define SR_MIN_EXISTS SR_MINORSYNC ! 192: #define SR_DAT_EXISTS SR_HALFDUPLEX ! 193: ! 194: #define SR_TOKENS (SR_RLS_EXISTS | SR_MAJ_EXISTS | SR_ACT_EXISTS \ ! 195: | SR_MIN_EXISTS | SR_DAT_EXISTS) ! 196: ! 197: #define SR_BASUBSET (SR_HALFDUPLEX | SR_TYPEDATA | SR_CAPABILITY \ ! 198: | SR_MINORSYNC | SR_EXCEPTIONS | SR_ACTIVITY) ! 199: #define SR_BCSUBSET (SR_HALFDUPLEX | SR_DUPLEX) ! 200: #define SR_BSSUBSET (SR_NEGOTIATED | SR_HALFDUPLEX | SR_DUPLEX \ ! 201: | SR_TYPEDATA | SR_MINORSYNC | SR_MAJORSYNC \ ! 202: | SR_RESYNC) ! 203: #define SR_MYREQUIRE (SR_BASUBSET | SR_BCSUBSET | SR_BSSUBSET \ ! 204: | SR_EXPEDITED) ! 205: #define SR_DEFAULT (SR_HALFDUPLEX | SR_MINORSYNC | SR_ACTIVITY \ ! 206: | SR_CAPABILITY | SR_EXCEPTIONS) ! 207: ! 208: /* SESSION tokens */ ! 209: #define ST_INIT_VALUE 0x00 /* initiator's side */ ! 210: #define ST_RESP_VALUE 0x01 /* responder's side */ ! 211: #define ST_CALL_VALUE 0x02 /* called SS-user's choice */ ! 212: #define ST_RSVD_VALUE 0x03 /* reserved */ ! 213: ! 214: #define ST_MASK 0x03 ! 215: ! 216: #define ST_RLS_SHIFT 6 /* release token */ ! 217: #define ST_MAJ_SHIFT 4 /* major/activity token */ ! 218: #define ST_ACT_SHIFT ST_MAJ_SHIFT ! 219: #define ST_MIN_SHIFT 2 /* synchronize-minor token */ ! 220: #define ST_DAT_SHIFT 0 /* data token */ ! 221: ! 222: #define dotokens() \ ! 223: { \ ! 224: dotoken (SR_RLS_EXISTS, ST_RLS_SHIFT, ST_RLS_TOKEN, "release"); \ ! 225: dotoken (SR_MAJ_EXISTS, ST_MAJ_SHIFT, ST_MAJ_TOKEN, "majorsync"); \ ! 226: dotoken (SR_MIN_EXISTS, ST_MIN_SHIFT, ST_MIN_TOKEN, "minorsync"); \ ! 227: dotoken (SR_DAT_EXISTS, ST_DAT_SHIFT, ST_DAT_TOKEN, "data"); \ ! 228: } ! 229: ! 230: ! 231: struct SSAPdata { /* S-READ.INDICATION */ ! 232: int sx_type; /* type of indication */ ! 233: #define SX_NORMAL 0x00 /* S-DATA.INDICATION */ ! 234: #define SX_EXPEDITED 0x01 /* S-EXPEDITED-DATA.INDICATION */ ! 235: #define SX_TYPED 0x02 /* S-TYPED-DATA.INDICATION */ ! 236: #define SX_CAPDIND 0x03 /* S-CAPABILITY-DATA.INDICATION */ ! 237: #define SX_CAPDCNF 0x04 /* S-CAPABILITY-DATA.CONFIRMATION */ ! 238: ! 239: #define SX_EXSIZE 14 /* EXPEDITED DATA (XSSDU) only */ ! 240: #define SX_CDSIZE 512 /* CAPABILITY DATA only */ ! 241: #define SX_CDASIZE 512 /* CAPABILITY DATA ACK only */ ! 242: int sx_cc; /* total length */ ! 243: struct qbuf sx_qbuf; /* chained data */ ! 244: }; ! 245: #define SXFREE(sx) QBFREE (&((sx) -> sx_qbuf)) ! 246: ! 247: ! 248: struct SSAPtoken { /* S-{TOKEN-*,GIVE-CONTROL}.INDICATION */ ! 249: int st_type; /* type of indication */ ! 250: #define ST_GIVE 0x00 /* S-TOKEN-GIVE.INDICATION */ ! 251: #define ST_PLEASE 0x01 /* S-TOKEN-PLEASE.INDICATION */ ! 252: #define ST_CONTROL 0x02 /* S-GIVE-CONTROL.INDICATION */ ! 253: ! 254: u_char st_tokens; /* tokens offered/wanted */ ! 255: #define ST_RLS_TOKEN (0x01 << ST_RLS_SHIFT) ! 256: #define ST_MAJ_TOKEN (0x01 << ST_MAJ_SHIFT) ! 257: #define ST_ACT_TOKEN (0x01 << ST_ACT_SHIFT) ! 258: #define ST_MIN_TOKEN (0x01 << ST_MIN_SHIFT) ! 259: #define ST_DAT_TOKEN (0x01 << ST_DAT_SHIFT) ! 260: ! 261: u_char st_owned; /* tokens owned by user */ ! 262: ! 263: #define ST_SIZE 512 /* PLEASE TOKEN only */ ! 264: int st_cc; /* length */ ! 265: char *st_data; /* data */ ! 266: }; ! 267: #define STFREE(st) \ ! 268: { \ ! 269: if ((st) -> st_data) \ ! 270: free ((st) -> st_data), (st) -> st_data = NULL; \ ! 271: } ! 272: ! 273: ! 274: struct SSAPsync { /* S-*-SYNC.{INDICATION,CONFIRMATION} */ ! 275: int sn_type; /* type of indication/confirmation */ ! 276: #define SN_MAJORIND 0x00 /* S-MAJOR-SYNC.INDICATION */ ! 277: #define SN_MAJORCNF 0x01 /* S-MAJOR-SYNC.CONFIRMATION */ ! 278: #define SN_MINORIND 0x02 /* S-MINOR-SYNC.INDICATION */ ! 279: #define SN_MINORCNF 0x03 /* S-MINOR-SYNC.CONFIRMATION */ ! 280: #define SN_RESETIND 0x04 /* S-RESYNCHRONIZE.INDICATION */ ! 281: #define SN_RESETCNF 0x05 /* S-RESYNCHRONIZE.CONFIRMATION */ ! 282: ! 283: int sn_options; /* options (!!) */ ! 284: /* for S-MINOR-SYNC.INDICATION */ ! 285: #define SYNC_CONFIRM 1 /* wants confirmation */ ! 286: #define SYNC_NOCONFIRM 0 /* .. nope */ ! 287: /* for S-RESYNCHRONIZE.INDICATION */ ! 288: #define SYNC_RESTART 0 /* restart */ ! 289: #define SYNC_ABANDON 1 /* abandon */ ! 290: #define SYNC_SET 2 /* set */ ! 291: ! 292: long sn_ssn; /* serial number */ ! 293: #define SERIAL_NONE (-1L) /* No SSN */ ! 294: #define SERIAL_MIN 000000L /* the min SSN */ ! 295: #define SERIAL_MAX 999998L /* the max SSN */ ! 296: ! 297: int sn_settings; /* new token settings (RESYNC only) */ ! 298: ! 299: /* sync data from peer */ ! 300: #define SN_SIZE 512 ! 301: int sn_cc; /* length */ ! 302: char *sn_data; /* data */ ! 303: }; ! 304: #define SNFREE(sn) \ ! 305: { \ ! 306: if ((sn) -> sn_data) \ ! 307: free ((sn) -> sn_data), (sn) -> sn_data = NULL; \ ! 308: } ! 309: ! 310: ! 311: struct SSAPactivity { /* S-ACTIVITY-*.{INDICATION,CONFIRMATION} */ ! 312: int sv_type; /* type of indication/confirmation */ ! 313: #define SV_START 0x00 /* S-ACTIVITY-START.INDICATION */ ! 314: #define SV_RESUME 0x01 /* S-ACTIVITY-RESUME.INDICATION */ ! 315: #define SV_INTRIND 0x02 /* S-ACTIVITY-INTERRUPT.INDICATION */ ! 316: #define SV_INTRCNF 0x03 /* S-ACTIVITY-INTERRUPT.CONFIRMATION */ ! 317: #define SV_DISCIND 0x04 /* S-ACTIVITY-DISCARD.INDICATION */ ! 318: #define SV_DISCCNF 0x05 /* S-ACTIVITY-DISCARD.CONFIRMATION */ ! 319: #define SV_ENDIND 0x06 /* S-ACTIVITY-END.INDICATION */ ! 320: #define SV_ENDCNF 0x07 /* S-ACTIVITY-END.CONFIRMATION */ ! 321: ! 322: struct SSAPactid sv_id; /* START/RESUME activity identifier */ ! 323: ! 324: struct SSAPactid sv_oid; /* RESUME old activity identifier */ ! 325: struct SSAPref sv_connect;/* old connection identifier */ ! 326: ! 327: long sv_ssn; /* RESUME/END Serial number */ ! 328: ! 329: int sv_reason; /* INTERRUPT/DISCARD */ ! 330: /* same values as sp_reason */ ! 331: ! 332: /* activity DATA from peer */ ! 333: #define SV_SIZE 512 ! 334: int sv_cc; /* length */ ! 335: char *sv_data; /* data */ ! 336: }; ! 337: #define SVFREE(sv) \ ! 338: { \ ! 339: if ((sv) -> sv_data) \ ! 340: free ((sv) -> sv_data), (sv) -> sv_data = NULL; \ ! 341: } ! 342: ! 343: ! 344: struct SSAPreport { /* S-{U,P}-EXCEPTION-REPORT.INDICATION */ ! 345: int sp_peer; /* T = S-U-EXCEPTION-REPORT.INDICATION: ! 346: sp_reason/sp_data both meaningful ! 347: NIL = S-P-EXCEPTION-REPORT.INDICATION: ! 348: sp_reason == SP_NOREASON, or ! 349: sp_reason == SP_PROTOCOL */ ! 350: int sp_reason; ! 351: #define SP_NOREASON 0 /* No specific reason stated */ ! 352: #define SP_JEOPARDY 1 /* User receiving ability jeopardized */ ! 353: #define SP_RSVD1 2 /* reserved */ ! 354: #define SP_SEQUENCE 3 /* User sequence error */ ! 355: #define SP_RSVD2 4 /* reserved */ ! 356: #define SP_LOCAL 5 /* Local SS-user error */ ! 357: #define SP_PROCEDURAL 6 /* Unrecoverable procedural error */ ! 358: #define SP_DEMAND 128 /* Demand data token */ ! 359: ! 360: #define SP_PROTOCOL (-1) /* SS-provider protocol error */ ! 361: ! 362: /* report DATA from peer */ ! 363: #define SP_SIZE 512 ! 364: int sp_cc; /* length */ ! 365: char *sp_data; /* data */ ! 366: }; ! 367: #define SPFREE(sp) \ ! 368: { \ ! 369: if ((sp) -> sp_data) \ ! 370: free ((sp) -> sp_data), (sp) -> sp_data = NULL; \ ! 371: } ! 372: ! 373: ! 374: struct SSAPfinish { /* S-RELEASE.INDICATION */ ! 375: /* release DATA from peer */ ! 376: #define SF_SIZE 512 ! 377: int sf_cc; /* length */ ! 378: char *sf_data; /* data */ ! 379: }; ! 380: #define SFFREE(sf) \ ! 381: { \ ! 382: if ((sf) -> sf_data) \ ! 383: free ((sf) -> sf_data), (sf) -> sf_data = NULL; \ ! 384: } ! 385: ! 386: ! 387: struct SSAPrelease { /* S-RELEASE.CONFIRMATION */ ! 388: int sr_affirmative; /* T = connection released ! 389: NIL = request refused */ ! 390: ! 391: /* release DATA from peer */ ! 392: #define SR_SIZE 512 ! 393: int sr_cc; /* length */ ! 394: char *sr_data; /* data */ ! 395: }; ! 396: #define SRFREE(sr) \ ! 397: { \ ! 398: if ((sr) -> sr_data) \ ! 399: free ((sr) -> sr_data), (sr) -> sr_data = NULL; \ ! 400: } ! 401: ! 402: ! 403: struct SSAPabort { /* S-{U,P}-ABORT.INDICATION */ ! 404: int sa_peer; /* T = S-U-ABORT.INDICATION: ! 405: sa_info/sa_cc is meaningful ! 406: NIL = S-P-ABORT.INDICATION: ! 407: sa_reason is meaningful, ! 408: sa_data/sa_cc contains diagnostics */ ! 409: ! 410: int sa_reason; /* same codes as sc_result */ ! 411: ! 412: /* abort DATA from peer */ ! 413: #define SA_SIZE 512 /* N.B.: the ISO DIS says 9, but we use ! 414: 512 instead so ASE-level aborts will work ! 415: reasonably */ ! 416: int sa_cc; /* length */ ! 417: char *sa_info; /* data (from the peer) */ ! 418: char *sa_realinfo; /* real head of data */ ! 419: char sa_data[512]; /* data (for messages from provider) */ ! 420: }; ! 421: #define SAFREE(sa) \ ! 422: { \ ! 423: if ((sa) -> sa_realinfo) \ ! 424: free ((sa) -> sa_realinfo), (sa) -> sa_realinfo = NULL; \ ! 425: } ! 426: ! 427: ! 428: struct SSAPindication { ! 429: int si_type; /* the union element present */ ! 430: #define SI_DATA 0x00 ! 431: #define SI_TOKEN 0x01 ! 432: #define SI_SYNC 0x02 ! 433: #define SI_ACTIVITY 0x03 ! 434: #define SI_REPORT 0x04 ! 435: #define SI_FINISH 0x05 ! 436: #define SI_ABORT 0x06 ! 437: ! 438: union { ! 439: struct SSAPdata si_un_data; ! 440: struct SSAPtoken si_un_token; ! 441: struct SSAPsync si_un_sync; ! 442: struct SSAPactivity si_un_activity; ! 443: struct SSAPreport si_un_report; ! 444: struct SSAPfinish si_un_finish; ! 445: struct SSAPabort si_un_abort; ! 446: } si_un; ! 447: #define si_data si_un.si_un_data ! 448: #define si_token si_un.si_un_token ! 449: #define si_sync si_un.si_un_sync ! 450: #define si_activity si_un.si_un_activity ! 451: #define si_report si_un.si_un_report ! 452: #define si_finish si_un.si_un_finish ! 453: #define si_abort si_un.si_un_abort ! 454: }; ! 455: ! 456: /* */ ! 457: ! 458: extern char *ssapversion; ! 459: ! 460: ! 461: int SExec (); /* SERVER only */ ! 462: int SInit (); /* S-CONNECT.INDICATION */ ! 463: ! 464: int SConnResponse (); /* S-CONNECT.RESPONSE */ ! 465: int SConnRequest (); /* S-CONNECT.REQUEST (backwards-compatible) */ ! 466: #define SConnRequest(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11) \ ! 467: SAsynConnRequest (a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,0) ! 468: int SAsynConnRequest (); /* S-(ASYN-)CONNECT.REQUEST */ ! 469: int SAsynRetryRequest (); /* S-ASYN-RETRY.REQUEST (pseudo) */ ! 470: int SDataRequest (); /* S-DATA.REQUEST */ ! 471: int SWriteRequest (); /* S-WRITE.REQUEST (pseudo) */ ! 472: int SExpdRequest (); /* S-EXPEDITED-DATA.REQUEST */ ! 473: int STypedRequest (); /* S-TYPED-DATA.REQUEST */ ! 474: int SCapdRequest (); /* S-CAPABILITY-DATA.REQUEST */ ! 475: int SCapdResponse (); /* S-CAPABILITY-DATA.RESPONSE */ ! 476: int SReadRequest (); /* S-READ.REQUEST (pseudo) */ ! 477: int SGTokenRequest (); /* S-TOKEN-GIVE.REQUEST */ ! 478: int SPTokenRequest (); /* S-TOKEN-PLEASE.REQUEST */ ! 479: int SGControlRequest (); /* S-CONTROL-GIVE.REQUEST */ ! 480: int SMajSyncRequest (); /* S-MAJOR-SYNC.REQUEST */ ! 481: int SMajSyncResponse (); /* S-MAJOR-SYNC.RESPONSE */ ! 482: int SMinSyncRequest (); /* S-MINOR-SYNC.REQUEST */ ! 483: int SMinSyncResponse (); /* S-MINOR-SYNC.RESPONSE */ ! 484: int SReSyncRequest (); /* S-RESYNCHRONIZE.REQUEST */ ! 485: int SReSyncResponse (); /* S-RESYNCHRONIZE.RESPONSE */ ! 486: int SActStartRequest (); /* S-ACTIVITY-START.REQUEST */ ! 487: int SActResumeRequest (); /* S-ACTIVITY-RESUME.REQUEST */ ! 488: int SActIntrRequest (); /* S-ACTIVITY-INTERRUPT.REQUEST */ ! 489: int SActIntrResponse (); /* S-ACTIVITY-INTERRUPT.RESPONSE */ ! 490: int SActDiscRequest (); /* S-ACTIVITY-DISCARD.REQUEST */ ! 491: int SActDiscResponse (); /* S-ACTIVITY-DISCARD.RESPONSE */ ! 492: int SActEndRequest (); /* S-ACTIVITY-END.REQUEST */ ! 493: int SActEndResponse (); /* S-ACTIVITY-END.RESPONSE */ ! 494: int SUAbortRequest (); /* S-U-ABORT.REQUEST */ ! 495: int SUReportRequest (); /* S-U-EXCEPTION-REPORT.REQUEST */ ! 496: int SRelRequest (); /* S-RELEASE.REQUEST */ ! 497: int SRelRetryRequest (); /* S-RELEASE-RETRY.REQUEST (pseudo) */ ! 498: int SRelResponse (); /* S-RELEASE.RESPONSE */ ! 499: ! 500: int SSetIndications (); /* define vectors for INDICATION events */ ! 501: int SSelectMask (); /* map session descriptors for select() */ ! 502: ! 503: char *SErrString (); /* return SSAP error code in string form */ ! 504: ! 505: #define SLocalHostName getlocalhost ! 506: char *SLocalHostName (); /* return name of local host (sigh) */ ! 507: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.