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

1.1     ! root        1: /* rosap.h - include file for remote operation users (RoS-USER) */
        !             2: 
        !             3: /* 
        !             4:  * $Header: /f/osi/h/RCS/rosap.h,v 7.0 89/11/23 21:55:56 mrose Rel $
        !             5:  *
        !             6:  * Based on an TCP-based implementation by George Michaelson of University
        !             7:  * College London.
        !             8:  *
        !             9:  *
        !            10:  * $Log:       rosap.h,v $
        !            11:  * Revision 7.0  89/11/23  21:55:56  mrose
        !            12:  * Release 6.0
        !            13:  * 
        !            14:  */
        !            15: 
        !            16: /*
        !            17:  *                               NOTICE
        !            18:  *
        !            19:  *    Acquisition, use, and distribution of this module and related
        !            20:  *    materials are subject to the restrictions of a license agreement.
        !            21:  *    Consult the Preface in the User's Manual for the full terms of
        !            22:  *    this agreement.
        !            23:  *
        !            24:  */
        !            25: 
        !            26: 
        !            27: #ifndef        _RoSAP_
        !            28: #define        _RoSAP_
        !            29: 
        !            30: #ifndef        _MANIFEST_
        !            31: #include "manifest.h"
        !            32: #endif
        !            33: #ifndef        _GENERAL_
        !            34: #include "general.h"
        !            35: #endif
        !            36: 
        !            37: #ifndef        _AcSAP_
        !            38: #include "acsap.h"             /* definitions for AcS-USERs */
        !            39: #endif
        !            40: 
        !            41: /*  */
        !            42: 
        !            43: struct RoSAPaddr {             /* RoSAP address (old-style)*/
        !            44:     struct SSAPaddr roa_addr;
        !            45: 
        !            46:     u_short    roa_port;
        !            47: };
        !            48: #define        NULLRoA                 ((struct RoSAPaddr *) 0)
        !            49: 
        !            50: /*  */
        !            51: 
        !            52: #define        ROS_MYREQUIRE   SR_DUPLEX/* for direct users of ACSE */
        !            53: 
        !            54: 
        !            55: struct RoSAPstart {            /* RO-BEGIN.INDICATION */
        !            56:     int            ros_sd;             /* ROS descriptor */
        !            57: 
        !            58:     struct RoSAPaddr ros_initiator;/* unique identifier */
        !            59: 
        !            60:     u_short ros_port;          /* application number */
        !            61: 
        !            62:     PE     ros_data;           /* initial DATA from peer */
        !            63: };
        !            64: #define        ROSFREE(ros) \
        !            65: { \
        !            66:     if ((ros) -> ros_data) \
        !            67:        pe_free ((ros) -> ros_data), (ros) -> ros_data = NULLPE; \
        !            68: }
        !            69: 
        !            70: struct RoSAPconnect {          /* RO-BEGIN.CONFIRMATION */
        !            71:     int            roc_sd;             /* ROS descriptor */
        !            72: 
        !            73:     int            roc_result;         /* result */
        !            74: #define        ROS_ACCEPT      (-1)
        !            75: 
        !            76:                                /* RO-BEGIN.REQUEST */
        !            77: #define        ROS_VALIDATE    0       /* Authentication failure */
        !            78: #define        ROS_BUSY        1       /* Busy */
        !            79: 
        !            80:                                /* General Problem */
        !            81: #define        ROS_GP_UNRECOG  2       /* Unrecognized APDU */
        !            82: #define        ROS_GP_MISTYPED 3       /* Mistyped APDU */
        !            83: #define        ROS_GP_STRUCT   4       /* Badly structured APDU */
        !            84: 
        !            85:                                /* Invoke Problem */
        !            86: #define        ROS_IP_DUP      5       /* Duplicate invocation */
        !            87: #define        ROS_IP_UNRECOG  6       /* Unrecognized operation */
        !            88: #define        ROS_IP_MISTYPED 7       /* Mistyped argument */
        !            89: #define        ROS_IP_LIMIT    8       /* Resource limitation */
        !            90: #define        ROS_IP_RELEASE  9       /* Initiator releasing */
        !            91: #define        ROS_IP_UNLINKED 10      /* Unrecognized linked ID */
        !            92: #define        ROS_IP_LINKED   11      /* Linked response unexpected */
        !            93: #define        ROS_IP_CHILD    12      /* Unexpected child operation */
        !            94: 
        !            95:                                /* Return Result Problem */
        !            96: #define        ROS_RRP_UNRECOG 13      /* Unrecognized invocation */
        !            97: #define        ROS_RRP_UNEXP   14      /* Result response unexpected */
        !            98: #define        ROS_RRP_MISTYPED 15     /* Mistyped result */
        !            99: 
        !           100:                                /* Return Error Problem */
        !           101: #define        ROS_REP_UNRECOG 16      /* Unrecognized invocation */
        !           102: #define        ROS_REP_UNEXP   17      /* Error response unexpected */
        !           103: #define        ROS_REP_RECERR  18      /* Unrecognized error */
        !           104: #define        ROS_REP_UNEXPERR 19     /* Unexpected error */
        !           105: #define        ROS_REP_MISTYPED 20     /* Mistyped parameter */
        !           106: 
        !           107:                                /* begin UNOFFICIAL */
        !           108: #define        ROS_ADDRESS     21      /* Address unknown */
        !           109: #define        ROS_REFUSED     22      /* Connect request refused on this network
        !           110:                                   connection */
        !           111: #define        ROS_SESSION     23      /* Session disconnect */
        !           112: #define        ROS_PROTOCOL    24      /* Protocol error */
        !           113: #define        ROS_CONGEST     25      /* Congestion at RoSAP */
        !           114: #define        ROS_REMOTE      26      /* Remote system problem */
        !           115: #define        ROS_DONE        27      /* Association done via async handler */
        !           116: #define        ROS_ABORTED     28      /* Peer aborted association */
        !           117: #define        ROS_RTS         29      /* RTS disconnect */
        !           118: #define        ROS_PRESENTATION 30     /* Presentation disconnect */
        !           119: #define        ROS_ACS         31      /* ACS disconnect */
        !           120: #define        ROS_PARAMETER   32      /* Invalid parameter */
        !           121: #define        ROS_OPERATION   33      /* Invalid operation */
        !           122: #define        ROS_TIMER       34      /* Timer expired */
        !           123: #define        ROS_WAITING     35      /* Indications waiting */
        !           124: #define        ROS_APDU        36      /* APDU not transferred */
        !           125: #define        ROS_INTERRUPTED 37      /* stub interrupted */
        !           126:                                /* end UNOFFICIAL */
        !           127: 
        !           128: #define        ROS_FATAL(r)    (!(ROS_OFFICIAL (r)) && (r) < ROS_PARAMETER)
        !           129: #define        ROS_OFFICIAL(r) ((r) < ROS_ADDRESS)
        !           130: 
        !           131:     PE     roc_data;           /* initial DATA from peer */
        !           132: };
        !           133: #define        ROCFREE(roc) \
        !           134: { \
        !           135:     if ((roc) -> roc_data) \
        !           136:        pe_free ((roc) -> roc_data), (roc) -> roc_data = NULLPE; \
        !           137: }
        !           138: 
        !           139: 
        !           140:                                /* Operation Classes */
        !           141: #define        ROS_SYNC        0       /* synchronous mode with result or error */
        !           142: #define        ROS_ASYNC       1       /* asynchronous mode with result or error */
        !           143: 
        !           144:                                /* APDU priorities */
        !           145: #define        ROS_NOPRIO      0       /* no priority */
        !           146: 
        !           147:     
        !           148: struct RoSAPinvoke {           /* RO-INVOKE.INDICATION */
        !           149:     int            rox_id;             /*   invokeID */
        !           150: 
        !           151:     int            rox_linkid;         /*   linkedID */
        !           152:     int     rox_nolinked;      /*   non-zero if no linkedID present */
        !           153: 
        !           154:     int            rox_op;             /*   operation */
        !           155:     PE     rox_args;           /*   arguments */
        !           156: };
        !           157: #define        ROXFREE(rox) \
        !           158: { \
        !           159:     if ((rox) -> rox_args) \
        !           160:        pe_free ((rox) -> rox_args), (rox) -> rox_args = NULLPE; \
        !           161: }
        !           162: 
        !           163: 
        !           164: struct RoSAPresult {           /* RO-RESULT.INDICATION */
        !           165:     int            ror_id;             /*   invokeID */
        !           166: 
        !           167:     int            ror_op;             /*   operation */
        !           168:     PE     ror_result;         /*   result */
        !           169: };
        !           170: #define        RORFREE(ror) \
        !           171: { \
        !           172:     if ((ror) -> ror_result) \
        !           173:        pe_free ((ror) -> ror_result), (ror) -> ror_result = NULLPE; \
        !           174: }
        !           175: 
        !           176: 
        !           177: struct RoSAPerror {            /* RO-ERROR.INDICATION */
        !           178:     int            roe_id;             /*   invokeID */
        !           179: 
        !           180:     int            roe_error;          /*   error */
        !           181:     PE     roe_param;          /*   parameter */
        !           182: };
        !           183: #define        ROEFREE(roe) \
        !           184: { \
        !           185:     if ((roe) -> roe_param) \
        !           186:        pe_free ((roe) -> roe_param), (roe) -> roe_param = NULLPE; \
        !           187: }
        !           188: 
        !           189: 
        !           190: struct RoSAPureject {          /* RO-U-REJECT.INDICATION */
        !           191:     int            rou_id;             /*   invokeID */
        !           192:     int            rou_noid;           /*     .. is not present */
        !           193: 
        !           194:     int            rou_reason;         /*   reason (same as roc_result) */
        !           195: };
        !           196: 
        !           197: 
        !           198: struct RoSAPpreject {          /* RO-P-REJECT.INDICATION */
        !           199:     int            rop_reason;         /*   reason (same as roc_result) */
        !           200: 
        !           201:                                /* APDU not transferred (reason is ROS_APDU) */
        !           202:     int            rop_id;             /*   invokeID */
        !           203:     PE     rop_apdu;           /*   APDU */
        !           204: 
        !           205:                                /*   additional failure data from provider */
        !           206: #define        ROP_SIZE        512
        !           207:     int            rop_cc;             /*   length */
        !           208:     char    rop_data[ROP_SIZE];        /*   data */
        !           209: };
        !           210: #define        ROPFREE(rop) \
        !           211: { \
        !           212:     if ((rop) -> rop_apdu) \
        !           213:        pe_free ((rop) -> rop_apdu), (rop) -> rop_apdu = NULLPE; \
        !           214: }
        !           215: 
        !           216: 
        !           217: struct RoSAPend {              /* RO-END.INDICATION */
        !           218:     int            roe_dummy;          /*   not used */
        !           219: };
        !           220: 
        !           221: 
        !           222: struct RoSAPindication {
        !           223:     int            roi_type;           /* the union element present */
        !           224: #define        ROI_INVOKE      0x00
        !           225: #define        ROI_RESULT      0x01
        !           226: #define        ROI_ERROR       0x02
        !           227: #define        ROI_UREJECT     0x03
        !           228: #define        ROI_PREJECT     0x04
        !           229: #define        ROI_END         0x05
        !           230: #define        ROI_FINISH      0x06
        !           231: 
        !           232:     union {
        !           233:        struct RoSAPinvoke roi_un_invoke;
        !           234:        struct RoSAPresult roi_un_result;
        !           235:        struct RoSAPerror roi_un_error;
        !           236:        struct RoSAPureject roi_un_ureject;
        !           237:        struct RoSAPpreject roi_un_preject;
        !           238:        struct RoSAPend roi_un_end;
        !           239:        struct AcSAPfinish roi_un_finish;
        !           240:     }  roi_un;
        !           241: #define        roi_invoke      roi_un.roi_un_invoke
        !           242: #define        roi_result      roi_un.roi_un_result
        !           243: #define        roi_error       roi_un.roi_un_error
        !           244: #define        roi_ureject     roi_un.roi_un_ureject
        !           245: #define        roi_preject     roi_un.roi_un_preject
        !           246: #define        roi_end         roi_un.roi_un_end
        !           247: #define        roi_finish      roi_un.roi_un_finish
        !           248: };
        !           249:     
        !           250: /*  */
        !           251: 
        !           252: extern char *rosapversion;
        !           253: 
        !           254: int    RoExec ();              /* SERVER only */
        !           255: int    RoInit ();              /* RO-BEGIN.INDICATION */
        !           256: 
        !           257: int    RoBeginResponse ();     /* RO-BEGIN.RESPONSE */
        !           258: int    RoBeginRequest ();      /* RO-BEGIN.REQUEST */
        !           259: int    RoEndRequest ();        /* RO-END.REQUEST */
        !           260: int    RoEndResponse ();       /* RO-END.RESPONSE */
        !           261: 
        !           262: int    RoInvokeRequest ();     /* RO-INVOKE.REQUEST */
        !           263: int    RoResultRequest ();     /* RO-RESULT.REQUEST */
        !           264: int    RoErrorRequest ();      /* RO-ERROR.REQUEST */
        !           265: int    RoURejectRequest ();    /* RO-U-REJECT.REQUEST */
        !           266: #define        RoRejectURequest        RoURejectRequest
        !           267: int    RoIntrRequest ();       /* RO-INVOKE.REQUEST (interruptable) */
        !           268: int    RoWaitRequest ();       /* RO-WAIT.REQUEST (pseudo) */
        !           269: 
        !           270: int    RoSetIndications ();    /* define vectors for INDICATION events */
        !           271: int    RoSelectMask ();        /* map remote operation descriptors for
        !           272:                                   select() */
        !           273: 
        !           274: int    RoSetService ();        /* bind underlying service */
        !           275: int    RoRtService (), RoPService (), RoSService ();
        !           276: int    RoSetThorn ();
        !           277: 
        !           278: char   *RoErrString ();        /* return RoSAP error code in string form */
        !           279: #endif

unix.superglobalmegacorp.com

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