Annotation of 43BSDReno/contrib/isode-beta/h/ropkt.h, revision 1.1

1.1     ! root        1: /* ropkt.h - include file for remote operation providers (RoS-PROVIDER) */
        !             2: 
        !             3: /* 
        !             4:  * $Header: /f/osi/h/RCS/ropkt.h,v 7.1 90/07/01 21:03:53 mrose Exp $
        !             5:  *
        !             6:  * Based on an TCP-based implementation by George Michaelson of University
        !             7:  * College London.
        !             8:  *
        !             9:  *
        !            10:  * $Log:       ropkt.h,v $
        !            11:  * Revision 7.1  90/07/01  21:03:53  mrose
        !            12:  * pepsy
        !            13:  * 
        !            14:  * Revision 7.0  89/11/23  21:55:55  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        _RoSAP_
        !            31: #include "rosap.h"             /* definitions for RoS-USERs */
        !            32: #endif
        !            33: 
        !            34: #include "acpkt.h"             /* definitions for AcS-PROVIDERs */
        !            35: 
        !            36: #ifndef        _RtSAP_
        !            37: #include "rtsap.h"             /* definitions for RtS-USERs */
        !            38: #endif
        !            39: 
        !            40: #ifndef _PSAP2_
        !            41: #include "psap2.h"             /* definitions for PS-USERs */
        !            42: #endif
        !            43: 
        !            44: #ifndef        _SSAP_
        !            45: #include "ssap.h"              /* definitions for SS-USERs */
        !            46: #endif
        !            47: 
        !            48: /*  */
        !            49: 
        !            50: #define        rosapPsig(acb, sd) \
        !            51: { \
        !            52:     if ((acb = findacblk (sd)) == NULL) { \
        !            53:        (void) sigiomask (smask); \
        !            54:        return rosaplose (roi, ROS_PARAMETER, NULLCP, \
        !            55:                            "invalid association descriptor"); \
        !            56:     } \
        !            57:     if (!(acb -> acb_flags & ACB_CONN)) { \
        !            58:        (void) sigiomask (smask); \
        !            59:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !            60:                            "association descriptor not connected"); \
        !            61:     } \
        !            62:     if (acb -> acb_flags & ACB_CLOSING) { \
        !            63:        (void) sigiomask (smask); \
        !            64:        return rosaplose (roi, ROS_WAITING, NULLCP, NULLCP); \
        !            65:     } \
        !            66:     if (acb -> acb_flags & ACB_FINN) { \
        !            67:        (void) sigiomask (smask); \
        !            68:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !            69:                            "association descriptor finishing"); \
        !            70:     } \
        !            71:     if (acb -> acb_putosdu == NULLIFP) { \
        !            72:        (void) sigiomask (smask); \
        !            73:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !            74:                            "association descriptor not bound"); \
        !            75:     } \
        !            76: }
        !            77: 
        !            78: #define        rosapXsig(acb, sd) \
        !            79: { \
        !            80:     if ((acb = findacblk (sd)) == NULL) { \
        !            81:        (void) sigiomask (smask); \
        !            82:        return rosaplose (roi, ROS_PARAMETER, NULLCP, \
        !            83:                            "invalid association descriptor"); \
        !            84:     } \
        !            85:     if (!(acb -> acb_flags & ACB_CONN)) { \
        !            86:        (void) sigiomask (smask); \
        !            87:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !            88:                            "association descriptor not connected"); \
        !            89:     } \
        !            90:     if (acb -> acb_flags & ACB_FINN) { \
        !            91:        (void) sigiomask (smask); \
        !            92:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !            93:                            "association descriptor finishing"); \
        !            94:     } \
        !            95:     if (acb -> acb_putosdu == NULLIFP) { \
        !            96:        (void) sigiomask (smask); \
        !            97:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !            98:                            "association descriptor not bound"); \
        !            99:     } \
        !           100: }
        !           101: 
        !           102: #define        rosapFsig(acb, sd) \
        !           103: { \
        !           104:     if ((acb = findacblk (sd)) == NULL) { \
        !           105:        (void) sigiomask (smask); \
        !           106:        return rosaplose (roi, ROS_PARAMETER, NULLCP, \
        !           107:                            "invalid association descriptor"); \
        !           108:     } \
        !           109:     if (!(acb -> acb_flags & ACB_ROS)) { \
        !           110:        (void) sigiomask (smask); \
        !           111:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !           112:                            "not an association descriptor for ROS"); \
        !           113:     } \
        !           114:     if (!(acb -> acb_flags & ACB_CONN)) { \
        !           115:        (void) sigiomask (smask); \
        !           116:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !           117:                            "association descriptor not connected"); \
        !           118:     } \
        !           119:     if (!(acb -> acb_flags & ACB_FINN)) { \
        !           120:        (void) sigiomask (smask); \
        !           121:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !           122:                            "association descriptor not finishing"); \
        !           123:     } \
        !           124:     if (acb -> acb_putosdu == NULLIFP) { \
        !           125:        (void) sigiomask (smask); \
        !           126:        return rosaplose (roi, ROS_OPERATION, NULLCP, \
        !           127:                            "association descriptor not bound"); \
        !           128:     } \
        !           129: }
        !           130: 
        !           131: #define        missingP(p) \
        !           132: { \
        !           133:     if (p == NULL) \
        !           134:        return rosaplose (roi, ROS_PARAMETER, NULLCP, \
        !           135:                            "mandatory parameter \"%s\" missing", "p"); \
        !           136: }
        !           137: 
        !           138: 
        !           139: #ifndef        lint
        !           140: #ifndef        __STDC__
        !           141: #define        copyRoSAPdata(base,len,d) \
        !           142: { \
        !           143:     register int i = len; \
        !           144:     if ((d -> d/* */_cc = min (i, sizeof d -> d/* */_data)) > 0) \
        !           145:        bcopy (base, d -> d/* */_data, d -> d/* */_cc); \
        !           146: }
        !           147: #else
        !           148: #define        copyRoSAPdata(base,len,d) \
        !           149: { \
        !           150:     register int i = len; \
        !           151:     if ((d -> d##_cc = min (i, sizeof d -> d##_data)) > 0) \
        !           152:        bcopy (base, d -> d##_data, d -> d##_cc); \
        !           153: }
        !           154: #endif
        !           155: #else
        !           156: #define        copyRoSAPdata(base,len,d)       bcopy (base, (char *) d, len)
        !           157: #endif
        !           158: 
        !           159: 
        !           160: #define        pylose() \
        !           161:        ropktlose (acb, roi, ROS_PROTOCOL, NULLCP, "%s", PY_pepy)
        !           162: 
        !           163: 
        !           164: int    ropktlose (), rosapreject (), rosaplose ();
        !           165: 
        !           166: /*  */
        !           167: 
        !           168: int    acb2osdu ();
        !           169: 
        !           170: 
        !           171: int    ro2rtswrite (), ro2rtswait (), ro2rtsready (), ro2rtsasync (),
        !           172:        ro2rtsmask ();
        !           173: 
        !           174: 
        !           175: int    ro2pswrite (), ro2pswait (), ro2psasync (), ro2psmask ();
        !           176: 
        !           177: 
        !           178: int    ss2roslose (), ss2rosabort ();
        !           179: int    ro2sswrite (), ro2sswait (), ro2ssasync (), ro2ssmask (), ro2sslose (),
        !           180:        ro2ssready ();
        !           181: 
        !           182: /*  */
        !           183: 
        !           184:                                /* APDU types */
        !           185: #define        APDU_INVOKE     1       /* Invoke */
        !           186: #define        APDU_RESULT     2       /* Return result */
        !           187: #define        APDU_ERROR      3       /* Return error */
        !           188: #define        APDU_REJECT     4       /* Reject */
        !           189: 
        !           190: #define        APDU_UNKNOWN    (-1)    /* anything other than the above */
        !           191: 
        !           192: 
        !           193:                                /* Reject APDU types */
        !           194: #define        REJECT_GENERAL  0       /* General Problem */
        !           195: #define          REJECT_GENERAL_BASE   ROS_GP_UNRECOG
        !           196: #define        REJECT_INVOKE   1       /* Invoke Problem */
        !           197: #define          REJECT_INVOKE_BASE    ROS_IP_DUP
        !           198: #define        REJECT_RESULT   2       /* Return Result Problem */
        !           199: #define          REJECT_RESULT_BASE    ROS_RRP_UNRECOG
        !           200: #define        REJECT_ERROR    3       /* Return Error Problem */
        !           201: #define          REJECT_ERROR_BASE     ROS_REP_UNRECOG
        !           202: #define        REJECT_COMPLETE 4       /* more Invoke Problem codes */

unix.superglobalmegacorp.com

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