home *** CD-ROM | disk | FTP | other *** search
- /*
- * This program is the CONFIDENTIAL and PROPRIETARY property
- * of FairCom(R) Corporation. Any unauthorized use, reproduction or
- * transfer of this computer program is strictly prohibited.
- *
- * Copyright (c) 1984 - 1994 FairCom Corporation.
- * This is an unpublished work, and is subject to limited distribution and
- * restricted disclosure only. ALL RIGHTS RESERVED.
- *
- * RESTRICTED RIGHTS LEGEND
- * Use, duplication, or disclosure by the Government is subject to
- * restrictions set forth in subparagraph (c)(1)(ii) of the Rights in
- * Technical Data and Computer Software clause at DFARS 252.227-7013.
- * FairCom Corporation, 4006 West Broadway, Columbia, MO 65203.
- *
- * c-tree PLUS(tm) Version 6.4
- * Release B
- * October 19, 1994
- */
-
- #ifndef ctCOMMH
- #define ctCOMMH
-
- #ifndef ctSEMA
- #include "ctsema.h"
- #endif
-
- #ifdef VINESSEC
- #ifndef ctST
- #ifdef __OS2__
- #include <streetta.h>
- #else
- #ifdef ctBAN5
- #include <ST.h>
- #else
- #include <streettalk.h>
- #endif
- #endif
- #define ctST
- #endif
- #endif
-
- #ifdef ctSP
- typedef char far * far * ppMTEXT;
- typedef char far * pMTEXT;
- #else
- typedef char ctMEM * pMTEXT;
- typedef char ctMEM * ctMEM * ppMTEXT;
- #endif
-
- #define ctNPATTRIBUTE_RECEIVE_TIMEOUT 1
- #define ctNPATTRIBUTE_SEND_TIMEOUT 2
-
- #define CTNPSTART 0
- #define CTNPSTOP 1
- #define CTNPOPEN 2
- #define CTNPCLOSE 3
- #define CTNPWRITE 4
- #define CTNPREAD 5
- #define CTNPMAKENMPIPE 6
- #define CTNPDISCONNECTNMPIPE 7
- #define CTNPCONNECTNMPIPE 8
- #define CTNPALLOCATE 9
- #define CTNPSETATTRIBUTE 10
- #define CTNPGETATTRIBUTE 11
-
- #define CTNPCTDEFER 0
- #define CTNPWAITWHILE 1
- #define CTNPRELEASEFLAG 2
- #define CTNPGETFLAG 3
- #define CTNPMEMORY 4
- #define CTNPMEMFREE 5
- #define CTNPUSERSTATUS 6
- #define CTNPREVOBJ 7
- #define CTNPWAITFLAG 8
-
- #define CTNPDELIMITER '@'
-
- typedef struct {
- pCOUNT lfseg; /* optional segment/map definitions */
- COUNT lfvar; /* # of var segments used in keys */
- UCOUNT lflen; /* length */
- COUNT lftyp; /* clstyp */
- COUNT lfmod; /* file mode */
- COUNT lfkey; /* key type & dup mode */
- COUNT lfrev; /* key to dat map */
- pCOUNT lfalt; /* alternative collating sequence */
- } LOCLFILE;
- typedef LOCLFILE ctMEM * pLOCLFILE;
-
- /*
- ** lfseg & lfvar not part of message; but app filno is.
- */
- #define LOCLSIZE (5 * SIZEOF(COUNT) + SIZEOF(UCOUNT))
-
- typedef struct {
- #ifdef ctCONDIDX
- pVOID cndx; /* conditional index ptr */
- #endif
- LONG curp; /* current ISAM position */
- LONG vlen; /* combined variable length */
- LONG rsv1; /* reserved */
- #ifdef ctCONDIDX
- COUNT relk; /* relative key number */
- COUNT rsv2; /* reserved */
- #else
- LONG rsv2;
- #endif
- } LOCLAUX;
- typedef LOCLAUX ctMEM * pLOCLAUX;
-
- typedef struct reqpb {
- COUNT pbfn; /* function # */
- COUNT pbfl; /* file # */
- LONG pblg; /* long value */
- VRLEN pbsz; /* length */
- VRLEN pbol; /* output length */
- COUNT pbmd; /* mode */
- COUNT pbvr; /* version # */
- COUNT pbna; /* # of arguments */
- COUNT pbmp; /* request map */
- } reqPARMB;
- typedef reqPARMB ctMEM * preqPARMB;
-
- typedef struct rsppb {
- COUNT qbfn; /* function # */
- COUNT qbfl; /* file # */
- LONG qblg; /* long value */
- LONG qbrv; /* 2nd long */
- LONG qbr3; /* 3rd long */
- VRLEN qbsz; /* size value */
- COUNT qbsh; /* short value */
- COUNT qber; /* error code */
- COUNT qbef; /* error file (ISAM) */
- COUNT qbio; /* sysio code */
- LONG qbat; /* attention channel */
- } rspPARMB;
- typedef rspPARMB ctMEM * prspPARMB;
-
- typedef LONG Displace;
- typedef ULONG RefVal;
-
- typedef struct {
- pMTEXT pMsg;
- ULONG msgLen;
- } MSGVEC;
-
- typedef MSGVEC ctMEM * pMSGVEC;
-
- #define ctSETMSG(m, p, l) m.pMsg = (pMTEXT)p; \
- m.msgLen = (ULONG)l
- #define ctGETMSG(msg) msg.pMsg
- #define ctGETMSGLEN(msg) msg.msgLen
-
- typedef struct {
- ULONG location;
- RefVal value;
- } Reference;
-
- typedef struct vab {
- ULONG flags;
- Reference ref;
- Displace reqLength;
- Displace posOffset;
- struct vab *vabMate;
- struct vab *nxtVab;
- } VAB;
- typedef VAB ctMEM * pVAB;
-
- #ifdef NO_BOUND
- typedef struct lqmsg {
- VRLEN lmlen[OUTSEG]; /* Protocol Byte Box */
- pMTEXT lctusrbuf;
- pFarCmdPtr lcommcmds;
- pUGRUP lgptr;
- SEMA lclnt;
- SEMA lsrvr;
- LONG lcpid; /* communications protocol id */
- LONG lupid;
- LONG lmemu;
- LONG lattr;
- LONG lrsv1;
- LONG lrsv2;
- VRLEN lsize;
- COUNT lerrc;
- COUNT lmode;
- COUNT lslct;
- UCOUNT lhdl;
- UCOUNT lrsvd;
- COUNT ltask;
- UTEXT lflvr;
- UTEXT lalgn;
- TEXT lusid[IDZ];
- TEXT luswd[PWZ];
- } LQMSG;
-
- typedef struct {
- VRLEN lmlen[OUTSEG];
- TEXT lctusrbuf[4];
- TEXT lcommcmds[4];
- TEXT lgptr[4];
- TEXT lclnt[8];
- TEXT lsrvr[8];
- LONG lcpid; /* communications protocol id */
- LONG lupid;
- LONG lmemu;
- LONG lattr;
- LONG lrsv1;
- LONG lrsv2;
- VRLEN lsize;
- COUNT lerrc;
- COUNT lmode;
- COUNT lslct;
- UCOUNT lhdl;
- UCOUNT lrsvd;
- COUNT ltask;
- UTEXT lflvr;
- UTEXT lalgn;
- TEXT lusid[IDZ];
- TEXT luswd[PWZ];
- } LOGON_REQUEST, ctMEM *pLOGON_REQUEST;
-
- typedef struct lqmsg2 {
- TEXT lnodname[IDZ];
- TEXT ltickle;
- UTEXT lpntr;
- UTEXT lrsv1;
- UTEXT lrsv2;
- TEXT pad[92];
- } LQMSG2;
-
- typedef struct lqrsp {
- LONG divs;
- LONG nusers;
- UTEXT sflvr[8];
- UCOUNT sndTimeOut;
- UCOUNT recTimeOut;
- UTEXT pad[108];
- } LQRSP;
-
- #ifdef ctSP
- typedef LQMSG far * pLQMSG;
- typedef LQMSG2 far * pLQMSG2;
- typedef LQRSP far * pLQRSP;
- #else
- typedef LQMSG ctMEM * pLQMSG;
- typedef LQMSG2 ctMEM * pLQMSG2;
- typedef LQRSP ctMEM * pLQRSP;
- #endif
-
- #ifdef VINESSEC
- typedef struct stmsg {
- TEXT susid[IDZ];
- TEXT sgrp[IDZ];
- IPCPORT sport;
- ULONG sstamp;
- ULONG sdate;
- TEXT sserver[6];
- TEXT sfiller[2];
- } STMSG;
-
- #ifdef ctSP
- typedef STMSG far * pSTMSG;
- #else
- typedef STMSG ctMEM * pSTMSG;
- #endif
-
- #endif
-
- #endif /* ctSERVER */
-
- #define U_UID(t) (ctiuser[t].tfilno + 1)
- #define G_GID(t) (ctigroup[t].tfilno + 1)
- #define UG_UNM(t) (ctiug[t].tfilno + 1)
-
- #define PutMessage 1
- #define ctGetMessage 2
- #define FnlMessage 3
-
- #define DataTerminated 0x000001L
- #define EndOfMessage 0x000002L
- #define MustSendNow 0x000004L
- #define RefIsMemory 0x000008L
- #define MustBeData 0x000010L
- #define WaitForCompletion 0x000020L
- #define RefIsUnused 0x000040L
-
- #endif /* ctCOMMH */
-
- /* end of ctcomm.h */
-