Annotation of 43BSDReno/contrib/isode-beta/h/ssap.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.