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

1.1     ! root        1: /* rosy.h - include file for ROSY users */
        !             2: 
        !             3: /* 
        !             4:  * $Header: /f/osi/h/RCS/rosy.h,v 7.1 90/07/01 21:03:55 mrose Exp $
        !             5:  *
        !             6:  *
        !             7:  * $Log:       rosy.h,v $
        !             8:  * Revision 7.1  90/07/01  21:03:55  mrose
        !             9:  * pepsy
        !            10:  * 
        !            11:  * Revision 7.0  89/11/23  21:55:57  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        _ROSY_
        !            28: #define        _ROSY_
        !            29: 
        !            30: #ifndef        _MANIFEST_
        !            31: #include "manifest.h"
        !            32: #endif
        !            33: #ifndef        _GENERAL_
        !            34: #include "general.h"
        !            35: #endif
        !            36: 
        !            37: #ifndef        _RoSAP_
        !            38: #include "rosap.h"             /* definitions for RoS-USERs */
        !            39: #endif
        !            40: 
        !            41: /*  */
        !            42: 
        !            43: #ifdef PEPSY_VERSION
        !            44: #include "pepsy.h"
        !            45: #endif
        !            46: 
        !            47: #ifdef PEPSY_DEFINITIONS
        !            48: /* This is really to change the name of the function RyOperation but the macro
        !            49:  * is unselective so we have to change the name of the structure as well, which
        !            50:  * shouldn't cause any problems
        !            51:  */
        !            52: #define RyOperation            PRyOperation
        !            53: #endif PEPSY_DEFINITIONS
        !            54: struct RyOperation {
        !            55:     char   *ryo_name;          /* operation name */
        !            56:     int            ryo_op;             /* operation code */
        !            57: 
        !            58: #ifdef PEPSY_DEFINITIONS
        !            59:     modtyp *ryo_arg_mod;       /* pointer to table for arguement type */
        !            60:     int            ryo_arg_index;      /* index to entry in tables */
        !            61: #else PEPSY_DEFINITIONS
        !            62:     IFP            ryo_arg_encode;     /* encodes argument */
        !            63:     IFP            ryo_arg_decode;     /* decodes   .. */
        !            64:     IFP            ryo_arg_free;       /* frees     .. */
        !            65: #endif PEPSY_DEFINITIONS
        !            66: 
        !            67:     int            ryo_result;         /* result possible */
        !            68: #ifdef PEPSY_DEFINITIONS
        !            69:     modtyp *ryo_res_mod;       /* pointer to table for result type */
        !            70:     int            ryo_res_index;      /* index to entry in tables */
        !            71: #else PEPSY_DEFINITIONS
        !            72:     IFP            ryo_res_encode;     /* encodes result */
        !            73:     IFP            ryo_res_decode;     /* decodes   .. */
        !            74:     IFP            ryo_res_free;       /* frees     .. */
        !            75: #endif PEPSY_DEFINITIONS
        !            76: 
        !            77:     struct RyError **ryo_errors;/* errors possible */
        !            78: };
        !            79: 
        !            80: 
        !            81: 
        !            82: struct RyError {
        !            83:     char   *rye_name;          /* error name */
        !            84:     int            rye_err;            /* error code */
        !            85: 
        !            86: #ifdef PEPSY_DEFINITIONS
        !            87:     modtyp *rye_param_mod;     /* pointer to table for result type */
        !            88:     int            rye_param_index;    /* index to entry in tables */
        !            89: #else PEPSY_DEFINITIONS
        !            90:     IFP            rye_param_encode;   /* encodes parameter */
        !            91:     IFP            rye_param_decode;   /* decodes   .. */
        !            92:     IFP            rye_param_free;     /* frees     .. */
        !            93: #endif PEPSY_DEFINITIONS
        !            94: };
        !            95: 
        !            96: /*  */
        !            97: 
        !            98: struct opsblk {
        !            99:     struct opsblk *opb_forw;   /* doubly-linked list */
        !           100:     struct opsblk *opb_back;   /*   .. */
        !           101: 
        !           102:     short      opb_flags;      /* our state */
        !           103: #define        OPB_NULL        0x0000
        !           104: #define        OPB_EVENT       0x0001  /* event present */
        !           105: #define        OPB_INITIATOR   0x0002  /* initiator block */
        !           106: #define        OPB_RESPONDER   0x0004  /* responder block */
        !           107: 
        !           108:     int            opb_fd;             /* association descriptor */
        !           109:     int            opb_id;             /* invoke ID */
        !           110: 
        !           111:     IFP            opb_resfnx;         /* result vector */
        !           112:     IFP            opb_errfnx;         /* error vector */
        !           113: 
        !           114:     struct RyOperation *opb_ryo;/* entry in operation table */
        !           115: 
        !           116:     struct RoSAPindication opb_event;  /* resulting event */
        !           117:     caddr_t opb_out;                   /* event parameter */
        !           118: #ifdef PEPSY_DEFINITIONS
        !           119:     modtyp *opb_free_mod;      /* pointer to table for result type */
        !           120:     int            opb_free_index;     /* index to entry in tables */
        !           121: #else PEPSY_DEFINITIONS
        !           122:     IFP            opb_free;                   /* free routine for event parameter */
        !           123: #endif PEPSY_DEFINITIONS
        !           124: 
        !           125:     PE     opb_pe;             /* for Simon */
        !           126: };
        !           127: #define        NULLOPB         ((struct opsblk *) 0)
        !           128: 
        !           129: 
        !           130: 
        !           131: 
        !           132: struct dspblk {
        !           133:     struct dspblk *dsb_forw;   /* doubly-linked list */
        !           134:     struct dspblk *dsb_back;   /*   .. */
        !           135: 
        !           136:     int            dsb_fd;             /* association descriptor */
        !           137:                                /* NOTOK-valued is wildcard for RyWait */
        !           138: 
        !           139:     struct RyOperation *dsb_ryo;/* entry in operation table */
        !           140:     
        !           141:     IFP            dsb_vector;         /* dispatch vector */
        !           142: };
        !           143: #define        NULLDSB         ((struct dspblk *) 0)
        !           144: 
        !           145: 
        !           146: 
        !           147: #define        RY_RESULT       (-1)    /* distinguishes RESULTs from ERRORs */
        !           148: #define        RY_REJECT       (-2)    /* distinguishes REJECTs from ERRORs */
        !           149: 
        !           150: /*  */
        !           151: /* Change the names to use the pepsy based rosy library */
        !           152: #ifdef PEPSY_DEFINITIONS
        !           153: #define RyDiscard              PRyDiscard
        !           154: #define RyDispatch             PRyDispatch
        !           155: #define RyDsError              PRyDsError
        !           156: #define RyDsResult             PRyDsResult
        !           157: #define RyDsUReject            PRyDsUReject
        !           158: #define RyGenID                        PRyGenID
        !           159: #define RyLose                 PRyLose
        !           160: #define RyOpInvoke             PRyOpInvoke
        !           161: #define RyStub                 PRyStub
        !           162: #define RyWait                 PRyWait
        !           163: #define RyWaitAux              PRyWaitAux
        !           164: #define finddsblk              Pfinddsblk
        !           165: #define finderrbyerr           Pfinderrbyerr
        !           166: #define finderrbyname          Pfinderrbyname
        !           167: #define findopblk              Pfindopblk
        !           168: #define findopbyname           Pfindopbyname
        !           169: #define findopbyop             Pfindopbyop
        !           170: #define firstopblk             Pfirstopblk
        !           171: #define freedsblk              Pfreedsblk
        !           172: #define freeopblk              Pfreeopblk
        !           173: #define losedsblk              Plosedsblk
        !           174: #define loseopblk              Ploseopblk
        !           175: #define newdsblk               Pnewdsblk
        !           176: #define newopblk               Pnewopblk
        !           177: #endif
        !           178: 
        !           179: int    RyWait ();              /* WAIT */
        !           180: 
        !           181:                                /* Initiator */
        !           182: int    RyStub ();              /* STUB */
        !           183: #define        ROS_INTR        2       /*   invoke stub but return on interrupt */
        !           184: int    RyDiscard ();           /* DISCARD */
        !           185: int    RyOperation ();         /* OPERATION */
        !           186: int    RyOpInvoke ();          /* INVOKE */
        !           187: int    RyGenID ();             /* generate unique invoke ID */
        !           188: 
        !           189:                                /* Responder */
        !           190: int    RyDispatch ();          /* DISPATCH */
        !           191: int    RyDsResult ();          /* RESULT */
        !           192: int    RyDsError ();           /* ERROR */
        !           193: int    RyDsUReject ();         /* U-REJECT */
        !           194: 
        !           195: int    RyLose ();              /* clean-up after association termination */
        !           196: 
        !           197: struct RyOperation *findopbyop (), *findopbyname ();
        !           198: 
        !           199: struct RyError *finderrbyerr (), *finderrbyname ();
        !           200: 
        !           201: int    freeopblk (), loseopblk ();
        !           202: struct opsblk *newopblk (), *findopblk (), *firstopblk ();
        !           203: 
        !           204: int    freedsblk (), losedsblk ();
        !           205: struct dspblk *newdsblk (), *finddsblk ();
        !           206: 
        !           207: #endif

unix.superglobalmegacorp.com

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