Annotation of 43BSDReno/contrib/isode-beta/h/rosy.h, revision 1.1.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.