DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T r

⟦b4e3c4411⟧ TextFile

    Length: 3547 (0xddb)
    Types: TextFile
    Names: »rosy.h«

Derivation

└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
    └─⟦eba4602b1⟧ »./isode-5.0.tar.Z« 
        └─⟦d3ac74d73⟧ 
            └─⟦this⟧ »isode-5.0/h/rosy.h« 

TextFile

/* rosy.h - include file for ROSY users */

/* 
 * $Header: /f/osi/h/RCS/rosy.h,v 6.0 89/03/18 23:32:18 mrose Rel $
 *
 *
 * $Log:	rosy.h,v $
 * Revision 6.0  89/03/18  23:32:18  mrose
 * Release 5.0
 * 
 */

/*
 *				  NOTICE
 *
 *    Acquisition, use, and distribution of this module and related
 *    materials are subject to the restrictions of a license agreement.
 *    Consult the Preface in the User's Manual for the full terms of
 *    this agreement.
 *
 */


#ifndef	_ROSY_
#define	_ROSY_

#ifndef	_MANIFEST_
#include "manifest.h"
#endif
#ifndef	_GENERAL_
#include "general.h"
#endif

#ifndef	_RoSAP_
#include "rosap.h"		/* definitions for RoS-USERs */
#endif

/* \f

 */

struct RyOperation {
    char   *ryo_name;		/* operation name */
    int	    ryo_op;		/* operation code */

    IFP	    ryo_arg_encode;	/* encodes argument */
    IFP	    ryo_arg_decode;	/* decodes   .. */
    IFP	    ryo_arg_free;	/* frees     .. */

    int	    ryo_result;		/* result possible */
    IFP	    ryo_res_encode;	/* encodes result */
    IFP	    ryo_res_decode;	/* decodes   .. */
    IFP	    ryo_res_free;	/* frees     .. */

    struct RyError **ryo_errors;/* errors possible */
};

struct RyOperation *findopbyop (), *findopbyname ();


struct RyError {
    char   *rye_name;		/* error name */
    int	    rye_err;		/* error code */

    IFP	    rye_param_encode;	/* encodes parameter */
    IFP	    rye_param_decode;	/* decodes   .. */
    IFP	    rye_param_free;	/* frees     .. */
};

struct RyError *finderrbyerr (), *finderrbyname ();

/* \f

 */

struct opsblk {
    struct opsblk *opb_forw;	/* doubly-linked list */
    struct opsblk *opb_back;	/*   .. */

    short	opb_flags;	/* our state */
#define	OPB_NULL	0x0000
#define	OPB_EVENT	0x0001	/* event present */
#define	OPB_INITIATOR	0x0002	/* initiator block */
#define	OPB_RESPONDER	0x0004	/* responder block */

    int	    opb_fd;		/* association descriptor */
    int	    opb_id;		/* invoke ID */

    IFP	    opb_resfnx;		/* result vector */
    IFP	    opb_errfnx;		/* error vector */

    struct RyOperation *opb_ryo;/* entry in operation table */

    struct RoSAPindication opb_event;	/* resulting event */
    caddr_t opb_out;			/* event parameter */
    IFP	    opb_free;			/* free routine for event parameter */

    PE	    opb_pe;		/* for Simon */
};
#define	NULLOPB		((struct opsblk *) 0)


int	freeopblk (), loseopblk ();
struct opsblk *newopblk (), *findopblk (), *firstopblk ();


struct dspblk {
    struct dspblk *dsb_forw;	/* doubly-linked list */
    struct dspblk *dsb_back;	/*   .. */

    int	    dsb_fd;		/* association descriptor */
				/* NOTOK-valued is wildcard for RyWait */

    struct RyOperation *dsb_ryo;/* entry in operation table */
    
    IFP	    dsb_vector;		/* dispatch vector */
};
#define	NULLDSB		((struct dspblk *) 0)


int	freedsblk (), losedsblk ();
struct dspblk *newdsblk (), *finddsblk ();


#define	RY_RESULT	(-1)	/* distinguishes RESULTs from ERRORs */
#define	RY_REJECT	(-2)	/* distinguishes REJECTs from ERRORs */

/* \f

 */

int	RyWait ();		/* WAIT */

				/* Initiator */
int	RyStub ();		/* STUB */
#define	ROS_INTR	2	/*   invoke stub but return on interrupt */
int	RyDiscard ();		/* DISCARD */
int	RyOperation ();		/* OPERATION */
int	RyOpInvoke ();		/* INVOKE */
int	RyGenID ();		/* generate unique invoke ID */

				/* Responder */
int	RyDispatch ();		/* DISPATCH */
int	RyDsResult ();		/* RESULT */
int	RyDsError ();		/* ERROR */
int	RyDsUReject ();		/* U-REJECT */

int	RyLose ();		/* clean-up after association termination */
#endif