#ifndef VERSION_HT
#define VERSION_HT TRUE
/*========================================================================
 * Copyright (C) VMware, Inc. 1986-2011.  All Rights Reserved
 *
 * Name - version.ht
 *
 * Description: Version dependent string constants
 *
 * $Id: version.ht,v 1.60.2.2 2008-05-06 19:56:48 stever Exp $
 *
 *========================================================================*/

/* no more includes. KEEP THIS LINE */

/******** Engineering Changeable Values ***********************************/

// EDIT the following two items to change version number 
#define VER_GS_VERSION "2.2.6.2" /* specially edited to be pretty... */
#define VER_MAJOR_NUMS   "226"

/*  This is used by GciProduct(), which is called by GBS. KEEP THIS UP TO DATE!!
 *   1 =  GemStone/S
 *   2 =  GemStone/S 2G
 *   3 =  GemStone/S 64
 */
#define VER_GCI_PRODUCT_BYTE 3

/* It would be nice to use VER_MAJOR_NUMS in the following but not
 * all preprocessors support token pasting.
 */
#define VER_NETLDI_NAME "gs64ldi" 
#define VER_STONE_NAME  "gs64stone"

// full dll name is:
// VER_GCILIB_BASENAME + ("lnk"|"rpc") + VER_GCILIB_PROD_NAME + "-" 
// + VER_MAJOR_NUMS + DYNLIB_EXT
// e.g. "libgcilnk64-200.so"
// This is pointed to by a symlink in the $GEMSTONE/lib directory constructed
// like this:
// VER_GCILIB_BASENAME + ("lnk"|"rpc") + DYNLIB_EXT
// e.g. "libgcilnk.so"

#define VER_GCILIB_BASENAME "libgci"
#define VER_GCILIB_PROD_NAME "64"

#define VER_PGSVRLIB_BASENAME "pgsvr"

   // VER_DBF_LEVEL, the extent compatibility level 
#define VER_DBF_LEVEL 830
		   /* 830 - Gemstone64 v2.2, changes to CR.scaveng*pages */
#define VER_DBF_LEVEL_21 828 
                   /* 828 - Gemstone64 v2.1, add epochDepMapChangesUnion to root page */
#define VER_DBF_LEVEL_20 827 
                   /* 827 - Gemstone64 v2.0, reserved oop for IndexManager */
                   /* 826 - Gemstone64 v2.0, change new bytecode send caches and Ot page values*/
                   /* 825 - Gemstone64 v2.0 with new interpreter bytecodes */
                   /* 821 - Gemstone64 v2.0 beta3, changed SmallDouble range*/
                   /* 820 - Gemstone64 v2.0 up to beta2 */
                   /* 802 - Added backup of deadObjs carefulBms to fullBackup,
			    and commitSequence fields */
                   /* 801 - New formats: bitmap internal nodes, fragment pages*/
                   /* 800 - 64 bit version from OOCL branch */

  // VER_TRANLOG_LEVEL tranlog compatibility level, normally same as 
  //  or greater than VER_DBF_LEVEL .
#define VER_TRANLOG_LEVEL 840 
            /* 840 Gs64 v2.2 beta */ 
            /* 831 Gs64 v2.1 added LOG_LOGIN_RECORD */
            /* 830 Gs64 v2.1 beta , changed LOG_DEBUG_KIND_STR_SIZE,
				added LOG_COMPR records  */
	    /* 828 Gemstone64 v2.0, , added ABORT_DEAD, ABORT_LOGOUT tranlog records */
	    /* 827  Gemstone64 v2.0 beta3 */


		   /* 810 - Gemstone64 v1.1 */
  /* Gemstone64 v1.1 changed some LOG_DATA record
	formats , and made VER_TRANLOG_LEVEL independent of VER_DBF_LEVEL */


// dbf level required to convert from 1.1 to 2.0
#define VER_DBF_LEVEL_FOR_20_CONV_from118 802
#define VER_DBF_LEVEL_FOR_20_CONV_from119 803

#define VER_DBF_LEVEL_2G_from6x 710  /* 6.x dbf converted to 2G format,
					but root pages still in 6.1 format */

#define VER_DBF_LEVEL_2G 700
                   /* 700 - 2 billion oop version on OOCL branch */

#define VER_DBF_LEVEL_62   62

#define VER_DBF_LEVEL_61   56
                   /* 56  6.0.1 release
                          BUGFIX 27994/27701: new frameAgePtr table in cache */
                   /* 55  6.0 release */
                   /* 54+ 5.1.5 bugfix 22885:
                          Added numCommitRecordsWithReclaimedOops in place of spare.
                          Use same version number for compatibility with earlier
                          dbf format */

                   /* 54  add new instructions for primitives with rcvrClass*/
                      /*  53 was 5.0 alpha1 release */
		   /* 53  new security features, change password algorithm*/
		   /* 52, modified prolog bytecodes to have non-protected mode
			  counterparts */
                   /* 51, changes to string compare primitives */
                   /* 50 add instVars subclasses, classCategory in Class */
                   /* 49 remove classVar Category, add civ classCategory, 
                         add ram oops format bit. all in Behavior */ 
                   /* 48 new class library */
                   /* 47 remove GsPortableCode */
                   /* 46 bug fixes changed oop sort order within Nscs */ 
                   /* 45 was 5.0 alpha prior to Dec 9, 95 */
// VER_DBF_LEVEL_41 41
// VER_DBF_LEVEL_40 38
        /* v3.5 beta2.x and above, and 4.0.x are 38 */
        /* v3.5 alpha 2 was 37 */
        /* v3.2 was  33 */

       /* object backup file compatibility level, 
        *  must be in range REP_MAX_TRANSFORM_BYTE..255 , i.e. 4..255 
        */
#define VER_BKUP_LEVEL  VER_DBF_LEVEL   /* value for files written by us */

                                    /* the GemStone copyright string       */
#define VER_GS_COPYRIGHT "Copyright (C) VMware, Inc. 1986-2011."


/* also note COPYPRO_VERSION_LEVEL in copypro.ht */

                                   /* Gem,Stone executable to DBF string */ 
#define VER_DBF_VERSION_NUM_STR  "820.0"

                                   /* Gem to Stone comm version */  
#define VER_STN_CALL_VERSION_NUM_STR  "844.0"
  /*           844.0  Gs64 v2.2.3 */
  /*           843.0  Gs64 v2.2.1, v2.2.2 */
  /*           842.0  Gs64 v2.2 beta */
  /*           833.0     New login arg numSharedCounters for 2.1 */
  /*           832.0     changes to various arg types in session.ht*/
  /*           831.0     changes to  tranlogging of bitmaps */
  /*           830.0  first Gemstone64 v2.1 beta */
  /*           820.0  for Gemstone64 v2.0 beta */
  /*           810.0  for Gs64 1.1  beta */
  /*           802.0  for Gs64 1.0  beta2  */
  /*           801.0  for Gs64 1.0   beta */
  /*           800.0  for GS64 1.0.0 alpha */
  /*           701.0  for 2G 1.1 */
  /*           700.0  for 2G 1.0 */
  /*           5.1.77  for 5.1.3.3, Add OOCL patch level */
  /*           5.1G  for 5.1.3 */
  /*           5.1F  for 5.1.2 */
  /*           5.1E  add protected oops for transactionless mode */
  /*           5.1D  fix bug 15004, change lockSets args */
  /*           5.1A  added client address for bug 14232 */

                                    /* Gem-client (Gci) compatibility level*/
#define VER_LGC_LEVEL      801  
			 /* 801     * Gemstone 64 1.0 beta, added haltOnErr to GciLoginEx */
                         /* 800     * GemStone 64 1.0alpha - 64 bit version */
                         /* 700     * GemStone 2G 1.0 - 2 billion oop version */
                         /* 32     * v5.1.3.3.88 - add single round trip, update compression libs */
                         /* 31     * v5.1.3.2oocl added Gem-client compression */ 
                         /* 30     * v5.1 , added byteOrder result from login*/
 			 /* 28     * v5.0.1 */
                         /* 28     * added isSubordinate for Lindsey */
                         /* 27     * v5.0 */
                         /* 26     * v5.0 alpha release */
#define VER_LGC_LEVEL_41    22    /* v4.1 product (addition of GciClampedTrav)*/
#define VER_LGC_LEVEL_32    19    /* v3.2 */

  /* oldest version of RPC front-end that is supported */
#define VER_LGC_LEVEL_MIN   801


#define VER_RDBF_LEVEL 800           /* rdbfio - pgsvr compatibility level */
                                     /* 3.0.x was level 15 */
                                     /* 3.2.x was level 16 */
                                     /* 4.0 .. 4.0.3 was 24 */
 			             /* 4.0.4  was 25 */
 			             /* 4.1Alpha to 4.1Beta2 was 30 */
                                     /* 4.1  was 32 */
                                     /* 5.0.1 was 35 */

/* also note SHRPC_COMPATIBILITY_LEVEL in shrpc.ht */

#define VER_NETLDI_LEVEL 800	/* netldicall-netldi compatibility level */
				/* 1 - added version level */


typedef enum {
  VER_INFO_CPU_KIND,
  VER_INFO_CPU_ARCH,
  VER_INFO_GS_BUILD_ARCH,
  VER_INFO_GS_BUILD_DATE,
  VER_INFO_GS_IMAGE_KIND,
  VER_INFO_GS_RELEASE,
  VER_INFO_GS_VERSION,
  VER_INFO_NODE_NAME,
  VER_INFO_OS_NAME,
  VER_INFO_OS_RELEASE,
  VER_INFO_OS_VERSION,
  VER_INFO_PROCESS_ID,
  VER_INFO_PROCESSOR_COUNT
  } VerParamEType;

typedef enum {
  VER_INT_KIND,
  VER_STRING_KIND
  } VerResultEType;

typedef struct {
  VerResultEType kind; 
  int intVal; 
  char stringVal[300];
  } VerParamResultSType;

#endif /* version.ht */
