home *** CD-ROM | disk | FTP | other *** search
- /*
- * compile time options: The CTOPTN.H header determines the fundamental
- * characteristics of the c-tree data structures
- * and disk I/O model. Each implementation
- * enviornment has its own version.
- *
- * This program is the CONFIDENTIAL and PROPRIETARY property
- * of FairCom(R) Corporation. Any unauthorized use, reproduction or
- * transfer of this program is strictly prohibited.
- *
- * Copyright (c) 1984, 1985, 1986, 1987, 1988, 1989 FairCom Corporation
- * (Subject to limited distribution and
- * restricted disclosure only.)
- * *** ALL RIGHTS RESERVED ***
- *
- * 4006 West Broadway
- * Columbia, MO 65203
- *
- *
- * c-tree(R) Version 4.3
- * Release C
- * February 7, 1989 17:30
- *
- */
-
- /* Configuration Option Definitions */
-
- /* *** SELECT ONE OPTION FROM EACH OF THE FOLLOWING 10 CATEGORIES *** */
-
- /* CATGEORY I: disk I/O model */
- /* If FPUTONLY or FPUTFGET are selected, be sure to use */
- /* non-zero file size extensions to ensure directory */
- /* updates are forced to disk. */
-
- /* FPUTFGET MULTIUSER: disable c-tree buffering */
- /* FPUTONLY SINGLE USER: c-tree buffering is write-through */
- /* NOTFORCE SINGLE USER: buffering is not write-through */
-
-
- /* CATEGORY II: automatic dos buffer flush after ISAM updates */
- /* On systems where the dos buffers (not the internal */
- /* c-tree buffers) are not write-through, you may want to */
- /* enable dos buffer flushes after updates. DOSFLUSH causes */
- /* such flushing after ISAM updates. DOSFLUSH only applies */
- /* when FPUTONLY or FPUTFGET are selected. */
-
- /* DOSFLUSH enable automatic dos buffer flush */
- /* NO_FLUSH no automatic dos buffer flush after ISAM update */
- /* */
- /* NOTE: if DOSFLUSH is selected, you must implement flushdos */
- /* function in CTCLIB.C (or CTLOCK.xyz). See CTCLIB.C */
- /* for examples. */
-
-
- /* CATEGORY III: internal integer format */
-
- /* LOW_HIGH internal integer format LSB to MSB */
- /* HIGH_LOW " " " MSB to LSB */
-
-
-
- /* CATEGORY IV: variable length data record support */
-
- /* VARLDATA support variable length data records */
- /* NO_VARLD no variable length support */
-
-
- /* CATEGORY V: conversion character for input to short integer */
-
- /* PERC_H use %h: (K & R standard) */
- /* PERC_D use %d: works for all 8 and 16 bit compilers */
- /* PERC_HD use %hd: used most commonly in 32 bit compilers */
-
-
- /* CATEGORY VI: key compression / variable length key support */
-
- /* VARLKEYS support key compression */
- /* NO_VARLK no key compression */
-
-
- /* CATEGORY VII: floating point key support */
-
- /* FLOATKEY support double floating point keys */
- /* NO_FLOAT no floating point support */
-
-
- /* CATEGORY VIII: uniform format for c-tree binary data */
-
- /* UNIFRMAT permits HIGH_LOW machines to produce c-tree */
- /* files compatible with LOW_HIGH machines */
- /* NO_UNIFM no special binary conversions performed */
-
-
- /* CATEGORY IX: parameter file routines */
-
- /* PARMFILE allow use of parameter files */
- /* NO_PARMF disable parameter file input routines */
-
-
- /* CATEGORY X: r-tree required special features in c-tree */
-
- /* RTREE enable r-tree features */
- /* NO_RTREE disbale r-tree features */
-
-
- /* CATEGORY XI: server configuration */
-
- /* CTSERVER enable c-tree server capabilities */
- /* NO_SERVE no server */
-
-
- /* CATEGORY XII: decoupled receive / send capability */
-
- /* CTS_INDP server can receive & send messages independently*/
- /* CTS_CPLD server must respond w/o 'delay' to request */
-
-
- /* CATEGORY XIII: support ISAM routines in server */
-
- /* CTS_ISAM server can support ISAM routines */
- /* CTS_NOSM server will not support ISAM routines */
-
-
- /* CATEGORY XIV: support for natural, long integer sequence numbers */
-
- /* NATURAL_SERIAL automatic sequence numbers stored as long integers */
- /* NO_NATURAL sequence stored in MSB to LSB order on all mchines */
- /* NATURAL_SERIAL not available before V4.3 Release C */
-
-
- /* ******************************************************************** */
- /* ******************************************************************** */
-
-
- /* *** Place Your Configuration Option Selections Here *** */
-
- #define NOTFORCE
- #define NO_FLUSH
- #define LOW_HIGH
- #define VARLDATA
- #define PERC_D
- #define VARLKEYS
- #define FLOATKEY
- #define UNIFRMAT
- #define PARMFILE
- #define NO_RTREE
- #define NO_SERVE
- #define CTS_CPLD
- #define CTS_ISAM
- #define NATURAL_SERIAL
-
- /* *** Capacity Constants *** */
-
- #define MAXLEN 64 /* maximum key length */
- #define MAXVFIL 255 /* maximum virtual files open at same time */
- #define MAX_NAME 64 /* maximum file name length */
-
- /* *** Variable Length Key & Field Constants *** */
-
- #define PADDING ' ' /* trailing key padding */
- #define FIELD_DELIM '\0' /* var length field delimiter */
-
- /*
- * The following capacity constants are used only by the ISAM routines and
- * the REBUILD routines.
- */
-
- #define MAXFIL 40 /* maximum number of files */
- #define MAX_DAT_KEY 10 /* maximum number of indices per data */
- /* file */
- #define MAX_KEY_SEG 4 /* maximum number of segments per key */
- #define MAX_LOCKS 32 /* maximum number of locks */
-
-
- /*
- * Special external buffer space support.
- *
- * If EXTRABFR is defined as below AND IF YOU PROVIDE THE FOLLOWING
- * FUNCTIONS: wrtxnod(),redxnod(),clsxbuf() to write, read and
- * close the extra buffer space, then c-tree will manipulate
- * index buffers beyond the allocated region (into your external
- * buffer space). There are special code segments in CTKRNL.C
- * and CTINIT.C
- *
- #define EXTRABFR
- *
- * This is not a standard feature suppported by FairCom.
- */
-
-
-
- /* ******************************************************************** */
- /* ************************ S T O P **************************** */
- /* *** D O N O T C H A N G E T H E F O L L O W I N G *** */
- /* *** W I T H O U T C H E C K I N G W I T H F A I R C O M *** */
- /* ******************************************************************** */
-
- /* *********** FPUTFGET CANNOT BE USED WITH THE SERVER ********* */
- #ifdef CTSERVER
- #ifdef FPUTFGET
- #undef FPUTFGET
- #define FPUTONLY
- #endif
- #endif
-
- /* *********** MUSTFRCE indicates multi-user requirements ********* */
- #ifdef MUSTFRCE
- #undef MUSTFRCE
- #endif
- #ifdef FPUTFGET
- #define MUSTFRCE
- #endif
- #ifdef CTSERVER
- #define MUSTFRCE
- #endif
-
- /* *********** DOSFLUSH APPLIES ONLY TO FPUTONLY & FPUTFGET ********* */
- #ifdef NOTFORCE
- #ifdef DOSFLUSH
- #undef DOSFLUSH
- #define NO_FLUSH
- #endif
- #endif
- /* ************* ************* ************* ************ ************* */
-
- /* ************* UNIFRMAT APPLIES ONLY TO HIGH_LOW ************* */
- #ifdef LOW_HIGH
- #ifdef UNIFRMAT
- #undef UNIFRMAT
- #define NO_UNIFM
- #endif
- #endif
- /* ************* ************* ************* ************ ************* */
-
-
- #define MAXLEV 10 /* maximum height of B-Tree + 1 */
- #define VARI_LEN (sizeof(VRLEN) + sizeof(LONG))
- #define STATUS (2 * sizeof(COUNT) + 2 * sizeof(LONG ) + 2 * sizeof(TEXT))
- /* node info: nkv & nkb sucesr & predsr leaf & bmem */
-
- #define HDRSIZ 64
- /* permanent header information */
- #define DHDRSIZ HDRSIZ
-
-
- #ifdef FPUTFGET
- #define PRDRPEAT 10 /* # of times to retry predsr node */
- #else
- #define PRDRPEAT 0
- #endif
-
- #define MAXMEMB 31 /* maximum additional index members */
-
-
-
- /* ******************************************************************** */
- /* *** SYMBOLIC CONSTANTS *** */
- /* ******************************************************************** */
-
- #define DRNZERO (POINTER) 0
- #define NODEZERO (LONG ) 0
-
- #define CTREAD 0
- #define CTWRITE 1
- #define CTNONE 3
- #define CTXTND 4
-
- #define LEAF '\1'
- #define NOLEAF '\0'
-
- #define ALPHAKEY '\0'
- #define INTKEY '\1'
- #define SFLOATKEY '\2'
- #define DFLOATKEY '\3'
- #define COL_PREFIX '\4' /* leading character compression */
- #define COL_SUFFIX '\10' /* 8 decimal: padding compression */
- #define COL_BOTH '\14' /* 12 decimal: both of the above */
- #define ALT_SEQ '\20' /* 16 decimal: alternative col sequence */
- #define MSK_ALT ~ALT_SEQ
-
- #define DUPKEY '\1'
- #define NODUPKEY '\0'
-
- #define REGULAR '\1'
- #define DUPLEAF '\0'
- #define DUPNONL '\3'
-
- #define DAT_CLOSE '\0'
- #define IDX_CLOSE '\1'
- #define VAT_CLOSE '\2'
-
- #define SECSIZ 128 /* logical sector size. DO NOT CHANGE. */
- #define CTBUFSIZ (4 * SECSIZ) /* ct_buf[] size */
- #define UPDATED C255 /* C255 defined in ctcmpl.h */
- #define DELFLG C255
- #define COMPACT '\143' /* file compaction flag: must rebuild indices */
- #define CMPMSK 0x00ff
-
- #define MAXAGE 0xffff /* max age of lru counter before roll-over */
- #define MAXSRLPOS 0xffff /* no serial segment flag */
-
- #define LH_VER 0x0001 /* LOW_HIGH option */
- #define HL_VER 0x0002 /* HIGH_LOW " */
- #define CT_V4 0x0050 /* c-tree version 4.1(A,B,C,D) */
- #define CT_V4E 0x0060 /* c-tree version 4.1E/E2/F 4.3A*/
-
- /* end of ctoptn.h */
-