#ifndef GCIRTL_HT
#define GCIRTL_HT TRUE
/*=========================================================================
 * Copyright (C) VMware Inc. 1986-2011.  All Rights Reserved.
 *
 * Name - gcirtl.ht
 *
 * Description - Functional interface to the GemStone C interface (GCI).
 *               This header file should be used by applications that
 *               specify at runtime what version of the gci to use.
 *               To specify it at build time use gci.hf.
 *
 * Note: This file was generated by the script genrtl.pl.
 *       Modify it instead of this file.
 *
 *========================================================================
 */
#include "flag.ht"
#include "l2unix.hf"
#if defined(FLG_MSWIN32)
#include <stdio.h>
#include <windows.h>
typedef void* sigset_t;
typedef int intptr_t;
typedef SSIZE_T ssize_t;
#endif

/* no more system includes after this point */

#include "gcicmn.ht"

/* no more includes. KEEP THIS LINE */

#if defined(__cplusplus)
extern "C" {
#endif /* __cplusplus */ 

typedef struct {
  int gciFeatureLevel;
  int gciCompatiblityLevel;
  int reserved;
  void (* GciAbort)(void);
  void (* GciAddOopToNsc)(OopType theNsc,
                               OopType theOop);
  void (* GciAddOopsToNsc)(OopType theNsc,
                                const OopType theOops[],
                                int numOops);
  BoolType (* GciAlteredObjs)(OopType theOops[],
                                   int *numOops);
  void (* GciAppendBytes)(OopType theObject,
                               int64 numBytes,
                               const ByteType *theBytes);
  void (* GciAppendChars)(OopType theObject,
                               const char* aString);
  void (* GciAppendOops)(OopType theObject,
                              int numOops,
                              const OopType *theOops);
  void (* GciBegin)(void);
  BoolType (* GciCallInProgress)(void);
  void (* GciCheckAuth)(const OopType *oopArray,
                             int arraySize,
                             unsigned char *authCodeArray);
  BoolType (* GciClampedTraverseObjs)(OopType clampSpec,
                                           const OopType theOops[],
                                           int numOops,
                                           GciTravBufType *travBuff,
                                           int level);
  BoolType (* GciClampedTrav)(const OopType *theOops,
                                   int numOops,
                                   GciClampedTravArgsSType *args);
  OopType (* GciClassMethodForClass)(OopType source,
                                          OopType oclass,
                                          OopType category,
                                          OopType symbolList);
  int (* GciClassNamedSize)(OopType oclass);
  void (* GciClearStack)(OopType process);
  BoolType (* GciCommit)(void);
  OopType (* GciContinue)(OopType process);
  OopType (* GciContinueWith)(OopType process,
                                   OopType replaceTopOfStack,
                                   int flags,
                                   /* same as GciPerformNoDebug flags,
                                   but single step has no effect */ GciErrSType *error);
  void (* GciNbContinueWith)(OopType process,
                                  OopType replaceTopOfStack,
                                  int flags,
                                  /* same as GciPerformNoDebug flags,
                                  but single step has no effect */ GciErrSType *error);
  OopType (* GciCreateOopObj)(OopType oclass,
                                   OopType objId,
                                   const OopType *values,
                                   int numValues,
                                   int clusterId,
                                   BoolType makePermanent/* has no effect*/);
  OopType (* GciCreateByteObj)(OopType oclass,
                                    OopType objId,
                                    const ByteType *values,
                                    int64 numValues,
                                    int clusterId,
                                    BoolType makePermanent/* has no effect*/);
  BoolType (* GciDirtyExportedObjs)(OopType theOops[],
                                         int *numOops);
  BoolType (* GciDirtyTrackedObjs)(OopType theOops[],
                                        int *numOops);
  void (* GciDirtyObjsInit)(void);
  BoolType (* GciDirtySaveObjs)(OopType theOops[],
                                     int *numOops);
  OopType (* GciNewDateTime)(OopType theClass,
                                  const GciDateTimeSType *timeVal);
  void (* GciFetchDateTime)(OopType datetimeObj,
                                 GciDateTimeSType *result);
  time_t (* GciDateTimeToCTime)(const GciDateTimeSType *arg);
  BoolType (* GciCTimeToDateTime)(time_t arg,
                                       GciDateTimeSType *result);
  GciDbgFuncType* (* GciDbgEstablish)(GciDbgFuncType *newDebugFunc);
  BoolType (* GciDbgEstablishToFile)(const char *fileName);
  void (* GciEnableFreeOopEncoding)(void);
  void (* GciEnableFullCompression)(void);
  void (* GciDbgLogString)(const char *message);
  BoolType (* GciEnableSignaledErrors)(BoolType newState);
  BoolType (* GciErr)(GciErrSType *errorReport);
  int (* GciFetchNumEncodedOops)(OopType *encodedOopArray,
                                      const int numEncodedOops);
  int (* GciDecodeOopArray)(OopType *encodedOopArray,
                                 const int numEncodedOops,
                                 OopType *decodedOopArray,
                                 const int decodedOopArraySize);
  int (* GciEncodeOopArray)(OopType *oopArray,
                                 const int numOops,
                                 OopType *encodedOopArray,
                                 BoolType needsSorting);
  OopType (* GciExecute)(OopType source,
                              OopType symbolList);
  OopType (* GciExecuteDbg)(OopType source,
                                 OopType symbolList,
                                 int flags /* same as GciPerformNoDebug flags */);
  OopType (* GciExecuteFromContext)(OopType source,
                                         OopType contextObject,
                                         OopType symbolList);
  OopType (* GciExecuteFromContextDbg)(OopType source,
                                            OopType contextObject,
                                            OopType symbolList ,
                                            int flags /* same as GciPerformNoDebug flags */);
  OopType (* GciExecuteStr)(const char source[],
                                 OopType symbolList);
  OopType (* GciExecuteStrDbg)(const char source[],
                                    OopType symbolList,
                                    int flags /* same as GciPerformNoDebug flags */);
  OopType (* GciExecuteStrFromContext)(const char source[],
                                            OopType contextObject,
                                            OopType symbolList);
  OopType (* GciExecuteStrFromContextDbg)(const char source[],
                                               int64 sourceSize,
                                               OopType sourceClass,
                                               OopType contextObject,
                                               OopType symbolList,
                                               int flags /* same as GciPerformNoDebug flags */);
  ByteType (* GciFetchByte)(OopType theObject,
                                 int64 atIndex);
  int64 (* GciFetchBytes_)(OopType theObject,
                                int64 startIndex,
                                ByteType theBytes[],
                                int64 numBytes);
  int64 (* GciFetchChars_)(OopType theObject,
                                int64 startIndex,
                                char *cString,
                                int64 maxSize);
  OopType (* GciFetchClass)(OopType theObject);
  OopType (* GciFetchVaryingOop)(OopType theObject,
                                      int64 atIndex);
  int (* GciFetchVaryingOops)(OopType theObject,
                                   int64 startIndex,
                                   OopType theOops[],
                                   int numOops);
  int64 (* GciFetchVaryingSize_)(OopType theObject);
  OopType (* GciFetchNameOfClass)(OopType aClass);
  OopType (* GciFetchNamedOop)(OopType theObject,
                                    int atIndex);
  int (* GciFetchNamedOops)(OopType theObject,
                                 int startIndex,
                                 OopType theOops[],
                                 int numOops);
  int (* GciFetchNamedSize)(OopType theObject);
  BoolType (* GciFetchObjInfo)(OopType theObject,
                                    int64 startIndex,
                                    int64 bufSize,
                                    GciObjInfoSType *info,
                                    ByteType *buffer,
                                    int64 *numReturned);
  BoolType (* GciFetchObjectInfo)(OopType theObject,
                                       GciFetchObjInfoArgsSType *args);
  int (* GciFetchObjImpl)(OopType theObject);
  OopType (* GciFetchOop)(OopType theObject,
                               int64 atIndex);
  int (* GciFetchOops)(OopType theObject,
                            int64 startIndex,
                            OopType theOops[],
                            int numOops);
  BoolType (* GciFetchPaths)(const OopType theOops[],
                                  int numOops,
                                  const int paths[],
                                  const int pathSizes[],
                                  int numPaths,
                                  OopType results[]);
  int64 (* GciFetchSize_)(OopType theObject);
  GciObjRepHdrSType* (* GciFindObjRep)(GciTravBufType* buf,
                                            OopType theObject);
  GciFloatKindEType (* GciFloatKind)(double aReal);
  OopType (* GciFltToOop)(double aReal);
  OopType (* GciGetFreeOop)(void);
  void (* GciGetFreeOops)(int count,
                               OopType *resultOops);
  void (* GciGetFreeOopsEncoded)(int *count,
                                      OopType *encodedOops);
  GciSessionIdType (* GciGetSessionId)(void);
  GciSessionIdType (* GciGetMaxSessionId)(void);
  void (* GciHardBreak)(void);
  BoolType (* GciHiddenSetIncludesOop)(OopType theOop,
                                            int hiddenSetId);
  BoolType (* GciInit)(void);
  void (* GciInitAppName)(const char *applicationName,
                               BoolType logWarnings);
  void (* GciInitAppName_)(const char *applicationName,
                                BoolType logWarnings,
                                unsigned int gemTempObjCacheOverrideKB);
  BoolType (* GciSetCacheName_)(const char* name);
  OopType (* GciInstMethodForClass)(OopType source,
                                         OopType oclass,
                                         OopType category,
                                         OopType symbolList);
  BoolType (* GciIsKindOf)(OopType anObj,
                                OopType aClassHistory);
  BoolType (* GciIsKindOfClass)(OopType anObj,
                                     OopType aClass);
  BoolType (* GciIsSubclassOf)(OopType aClass,
                                    OopType aClassHistory);
  BoolType (* GciIsSubclassOfClass)(OopType aClass,
                                         OopType superClass);
  BoolType (* GciIsRemote)(void);
  BoolType (* GciSessionIsRemote)(void);
  int (* GciIvNameToIdx)(OopType oclass,
                              const char instVarName[]);
  BoolType (* GciLogin)(const char gemstoneUsername[],
                             const char gemstonePassword[]);
  void (* GciLogout)(void);
  OopType (* GciI64ToOop)(int64 arg);
  OopType (* Gci_doubleToSmallDouble)(double aFloat);
  OopType (* GciPointerToByteArray)(void *p);
  void * (* GciByteArrayToPointer)(OopType arg);
  BoolType (* GciMoreTraversal)(GciTravBufType *travBuff);
  GciNbProgressEType (* GciNbEnd)(void **resultPtr);
  void (* GciNbAbort)(void);
  void (* GciNbBegin)(void);
  void (* GciNbClampedTraverseObjs)(OopType clampSpec,
                                         const OopType theOops[],
                                         int numOops,
                                         GciTravBufType *travBuff,
                                         int level);
  void (* GciNbClampedTrav)(const OopType *theOops,
                                 int numOops,
                                 GciClampedTravArgsSType *args);
  void (* GciNbCommit)(void);
  void (* GciNbContinue)(OopType process);
  void (* GciNbExecute)(OopType source,
                             OopType symbolList);
  void (* GciNbExecuteDbg)(OopType source,
                                OopType symbolList,
                                int flags /* same as flags to GciPerformNoDebug */);
  void (* GciNbExecuteStr)(const char source[],
                                OopType symbolList);
  void (* GciNbExecuteStrDbg)(const char source[],
                                   OopType symbolList ,
                                   int flags /* same as flags to GciPerformNoDebug */);
  void (* GciNbExecuteStrFromContext)(const char source[],
                                           OopType contextObject,
                                           OopType symbolList);
  void (* GciNbExecuteStrFromContextDbg)(const char source[],
                                              int64 sourceSize,
                                              OopType sourceClass,
                                              OopType contextObject,
                                              OopType symbolList ,
                                              int flags /* same as flags to GciPerformNoDebug */);
  void (* GciNbMoreTraversal)(GciTravBufType *travBuff);
  void (* GciNbPerform)(OopType receiver,
                             const char selector[],
                             const OopType args[],
                             int numArgs);
  void (* GciNbPerformNoDebug)(OopType receiver,
                                    const char selector[],
                                    const OopType args[],
                                    int numArgs,
                                    int flags);
  void (* GciNbPerformTraverse)(OopType receiver,
                                     const char selector[],
                                     const OopType args[],
                                     int numArgs,
                                     GciTravBufType *travBuff,
                                     int level);
  void (* GciNbExecuteStrTrav)(const char source[],
                                    OopType contextObject,
                                    OopType symbolList,
                                    GciClampedTravArgsSType *travArgs);
  void (* GciNbPerformTrav)(OopType receiver,
                                 const char *selector,
                                 const OopType *args,
                                 int numArgs,
                                 GciClampedTravArgsSType *travArgs);
  void (* GciNbStoreTrav)(GciTravBufType *travBuff,
                               int flag);
  void (* GciNbTraverseObjs)(const OopType theOops[],
                                  int numOops,
                                  GciTravBufType *travBuff,
                                  int level);
  OopType (* GciNewByteObj)(OopType aClass,
                                 const ByteType *value,
                                 int64 valueSize);
  OopType (* GciNewCharObj)(OopType aClass,
                                 const char *cString);
  OopType (* GciNewOop)(OopType oclass);
  void (* GciNewOops)(int numOops,
                           const OopType oclass[],
                           const int64 idxSize[],
                           OopType result[]);
  void (* GciNewOopUsingObjRep)(GciObjRepSType *anObjectReport);
  OopType (* GciNewString)(const char *cString);
  OopType (* GciNewSymbol)(const char *cString);
  BoolType (* GciObjExists)(OopType obj);
  BoolType (* GciObjInCollection)(OopType anObj,
                                       OopType aCollection);
  size_t (* GciObjRepSize_)(const GciObjRepHdrSType *anObjectReport);
  BoolType (* GciOopToBool)(OopType theObject);
  char (* GciOopToChr)(OopType theObject);
  unsigned int (* GciOopToChar16)(OopType theObject);
  double (* GciOopToFlt)(OopType theObject);
  BoolType (* GciPathToStr)(OopType aClass,
                                 const int path[],
                                 int pathSize,
                                 int64 maxResultSize,
                                 char result[]);
  OopType (* GciPerform)(OopType receiver,
                              const char selector[],
                              const OopType args[],
                              int numArgs);
  OopType (* GciPerformSymDbg)(OopType receiver,
                                    OopType selector,
                                    const OopType args[],
                                    int numArgs,
                                    int flags /* same as flags to GciPerformNoDebug */);
  OopType (* GciPerformNoDebug)(OopType receiver,
                                     const char selector[],
                                     const OopType args[],
                                     int numArgs,
                                     int flags);
  BoolType (* GciPerformTraverse)(OopType receiver,
                                       const char selector[],
                                       const OopType args[],
                                       int numArgs,
                                       GciTravBufType *travBuff,
                                       int level);
  BoolType (* GciPerformTrav)(OopType receiver,
                                   const char *selector,
                                   const OopType *args,
                                   int numArgs,
                                   GciClampedTravArgsSType *travArgs);
  BoolType (* GciExecuteStrTrav)(const char source[],
                                      OopType contextObject,
                                      OopType symbolList,
                                      GciClampedTravArgsSType *travArgs);
  int64 (* GciProcessDeferredUpdates_)(void);
  BoolType (* GciPollForSignal)(void);
  void (* GciPopErrJump)(GciJmpBufSType *jumpBuffer);
  void (* GciLongJmp)(GciJmpBufSType *buf,
                           int val);
  void (* GciPushErrJump)(GciJmpBufSType *jumpBuffer);
  void (* GciReleaseAllOops)(void);
  void (* GciReleaseAllGlobalOops)(void);
  void (* GciReleaseAllTrackedOops)(void);
  void (* GciReleaseOops)(const OopType theOops[],
                               int numOops);
  void (* GciReleaseGlobalOops)(const OopType theOops[],
                                     int numOops);
  void (* GciReleaseTrackedOops)(const OopType theOops[],
                                      int numOops);
  BoolType (* GciRemoveOopFromNsc)(OopType theNsc,
                                        OopType theOop);
  BoolType (* GciRemoveOopsFromNsc)(OopType theNsc,
                                         const OopType theOops[],
                                         int numOops);
  void (* GciReplaceOops)(OopType theObj,
                               const OopType theOops[],
                               int numOops);
  void (* GciReplaceVaryingOops)(OopType theObject,
                                      const OopType theOops[],
                                      int numOops);
  OopType (* GciResolveSymbol)(const char *cString ,
                                    OopType symbolList);
  OopType (* GciResolveSymbolObj)(OopType aSymbolObj,
                                       OopType symbolList);
  void (* GciSaveObjs)(const OopType theOops[],
                            int numOops);
  void (* GciSaveGlobalObjs)(const OopType theOops[],
                                  int numOops);
  void (* GciSaveAndTrackObjs)(const OopType theOops[],
                                    int numOops);
  BoolType (* GciSetErrJump)(BoolType aBoolean);
  void (* GciSetNet)(const char StoneName[],
                          const char HostUserId[],
                          const char HostPassword[],
                          const char GemService[]);
  void (* GciSetSessionId)(GciSessionIdType sessionId);
  void (* GciShutdown)(void);
  void (* GciSoftBreak)(void);
  OopType (* GciStep)(OopType process,int level);
  void (* GciNbStep)(OopType process,int level);
  void (* GciStoreByte)(OopType theObject,
                             int64 atIndex,
                             ByteType theByte);
  void (* GciStoreBytesInstanceOf)(OopType theClass,
                                        OopType theObject,
                                        int64 startIndex,
                                        const ByteType theBytes[],
                                        int64 numBytes);
  void (* GciStoreChars)(OopType theObject,
                              int64 startIndex,
                              const char *aString);
  void (* GciStoreIdxOop)(OopType theObject,
                               int64 atIndex,
                               OopType theOop);
  void (* GciStoreIdxOops)(OopType theObject,
                                int64 startIndex,
                                const OopType theOops[],
                                int numOops);
  void (* GciStoreNamedOop)(OopType theObject,
                                 int64 atIndex,
                                 OopType theOop);
  void (* GciStoreNamedOops)(OopType theObject,
                                  int64 startIndex,
                                  const OopType theOops[],
                                  int numOops);
  void (* GciStoreOop)(OopType theObject,
                            int64 atIndex,
                            OopType theOop);
  void (* GciStoreOops)(OopType theObject,
                             int64 startIndex,
                             const OopType theOops[],
                             int numOops);
  BoolType (* GciStorePaths)(const OopType theOops[],
                                  int numOops,
                                  const int paths[],
                                  const int pathSizes[],
                                  int numPaths,
                                  const OopType newValues[],
                                  int *failCount);
  void (* GciStoreTrav)(GciTravBufType *travBuff,
                             int flag);
  BoolType (* GciStrToPath)(OopType aClass,
                                 const char pathString[],
                                 int64 maxPathSize,
                                 int *resultPathSize,
                                 int resultPath[]);
  OopType (* GciStringToInteger)(const char* string,
                                      int64 stringSize);
  void (* GciSymDictAt)(OopType theDict,
                             const char *keyString,
                             OopType *value,
                             OopType *association);
  void (* GciSymDictAtObj)(OopType theDict,
                                OopType keyObj,
                                OopType *value,
                                OopType *association);
  void (* GciSymDictAtObjPut)(OopType theDict,
                                   OopType keyObj,
                                   OopType theValue);
  void (* GciSymDictAtPut)(OopType theDict,
                                const char *keyString,
                                OopType theValue);
  void (* GciStrKeyValueDictAt)(OopType theDict,
                                     const char *keyString,
                                     OopType *value);
  void (* GciStrKeyValueDictAtObj)(OopType theDict,
                                        OopType keyObj,
                                        OopType *value);
  void (* GciStrKeyValueDictAtObjPut)(OopType theDict,
                                           OopType keyObj,
                                           OopType theValue);
  void (* GciStrKeyValueDictAtPut)(OopType theDict,
                                        const char *keyString,
                                        OopType theValue);
  BoolType (* GciTraverseObjs)(const OopType theOops[],
                                    int numOops,
                                    GciTravBufType *travBuff,
                                    int level);
  void (* GciTrackedObjsFetchAllDirty)(OopType exportedDirty,
                                            int64 *numExportedDirty,
                                            OopType trackedDirty,
                                            int64 *numTrackedDirty);
  void (* GciTrackedObjsInit)(void);
  unsigned char (* GciProduct)(void);
  const char* (* GciVersion)(void);
  BoolType (* GciInUserAction)(void);
  void (* GciInstallUserAction)(GciUserActionSType *userAction);
  void (* GciRaiseException)(const GciErrSType *err);
#if defined(FLG_USES_DLLS)
  BoolType (* GciLoadUserActionLibrary)(const char* name,
                                             BoolType mustExist,
                                             void** libHandlePtr,
                                             char infoBuf[],
                                             int64 infoBufSize);
#endif
  int (* GciCompatiblityLevel)(void);
  int (* GciFeatureLevel)(void);
  int (* GciGetAppIdent)(void);
  void (* GciSetAppIdent)(int val);
  GciGetCmdFType* (* GciGetCmdReader)(void);
  void (* GciSetCmdReader)(GciGetCmdFType *newfunc);
  char* (* GciGetCmdLine)(void);
  void (* GciSetCmdLine)(char *newLine);
  GciLogFuncType* (* GciGetLogger)(void);
  void (* GciInitExeName)(const char *exeName);
  void (* GciSetLogger)(GciLogFuncType *newLogger);
  void (* GciSetLoggerFlush)(BoolType immediateFlush);
  BoolType (* GciGetLoggerFlush)(void);
  void (* GciVerbose)(BoolType value);
  BoolType (* GciGetNet)(char stoneBuff[],
                              int64 stoneBuffSize,
                              char gemBuff[],
                              int64 gemBuffSize);
  BoolType (* GciSessionInUse)(GciSessionIdType sessionId);
  void (* GciSetLoginCallback)(GciLoginCallbackFuncType* callbackPtr,
                                    GciClientDataType clientData);
  GciOopMapType (* GciOopMapCreate)(void);
  void (* GciOopMapDestroy)(GciOopMapType map);
  GciOopMapEntryType (* GciOopMapEntryAdd)(GciOopMapType map,
                                                OopType oop,
                                                GciClientDataType value,
                                                BoolType* newPtr);
  GciOopMapEntryType (* GciOopMapEntryFind)(GciOopMapType map,
                                                 OopType oop);
  BoolType (* GciOopMapForeach)(GciOopMapType map,GciOopMapCallbackFuncType* callback,
                                     int64 *arg1,
                                     int64* arg2);
  void (* GciOopMapEntryDelete)(GciOopMapEntryType entry);
  OopType (* GciOopMapEntryGetOop)(GciOopMapEntryType entry);
  GciClientDataType (* GciOopMapEntryGetValue)(GciOopMapEntryType entry);
  void (* GciOopMapEntrySetValue)(GciOopMapEntryType entry,
                                       GciClientDataType value);
  int (* GciNbGetNotifyHandle)(void);
  int (* GciGetSignalHandle)(void);
  BoolType (* GciWaitOnHandle)(int handle,
                                    int millisecsToWait);
  void (* GciInitNoSharedCache)(void);
  void (* GciUseSharedCache)(BoolType useSharedCache);
  void (* GciOverlayReplaceOops)(OopType theObj,
                                      const OopType theOops[],
                                      int numOops);
  void (* GciOverlayStoreOops)(OopType theObject,
                                    int64 startIndex,
                                    const OopType theOops[],
                                    int numOops);
  void (* GciOverlayStoreNamedOops)(OopType theObject,
                                         int64 startIndex,
                                         const OopType theOops[],
                                         int numOops);
  int (* GciServerFind)(const char* name,
                             const char* machine,
                             GciServerInfoFType* callback,
                             char errBuf[],
                             int errBufSize);
  int (* GciServerForeach)(const char* machine,
                                GciServerInfoFType* callback,
                                char errBuf[],
                                int errBufSize);
  int (* GciServerPing)(int port,
                             const char* machine,
                             int secondsToWait);
  BoolType (* GciServerClean)(const char* name,
                                   const char* machine,
                                   char errBuf[],
                                   int errBufSize);
  void (* GciDisassemble)(OopType aGsMethodOrCode);
  void (* GciClassRemoveAllMethods)(OopType aClass);
  void (* GciProtectMethods)(BoolType mode);
  BoolType (* GciStoreClientData)(GciSessionIdType id,
                                       void* clientData,
                                       BoolType autoFree);
  void* (* GciGetClientData)(GciSessionIdType id);
  void* (* GciGetCBuffer)(OopType gsBuffer);
  OopType (* GciStoreTravDo)(GciStoreTravDoArgsSType *args);
  void (* GciNbStoreTravDo)(GciStoreTravDoArgsSType *args);
  BoolType (* GciStoreTravDoTrav)(GciStoreTravDoArgsSType *stdArgs,
                                       GciClampedTravArgsSType *ctArgs);
  void (* GciNbStoreTravDoTrav)(GciStoreTravDoArgsSType *stdArgs,
                                     GciClampedTravArgsSType *ctArgs);
  int (* GciStoreTravDoTravRefs)(const OopType *oopsNoLongerReplicated,
                                      int numNotReplicated,
                                      const OopType *oopsGcedOnClient,
                                      int numGced,
                                      GciStoreTravDoArgsSType *stdArgs,
                                      GciClampedTravArgsSType *ctArgs);
  void (* GciNbStoreTravDoTravRefs)(const OopType *oopsNoLongerReplicated,
                                         int numNotReplicated,
                                         const OopType *oopsGcedOnClient,
                                         int numGced,
                                         GciStoreTravDoArgsSType *stdArgs,
                                         GciClampedTravArgsSType *ctArgs);
  void (* GciUnload)(void);
  void (* GciUseRealUid)(void);
  void (* GciUseEffectiveUid)(void);
  char* (* GciEncrypt)(const char* password,
                            char outBuff[],
                            unsigned int outBuffSize);
  void (* GciSetNetEx)(const char StoneName[],
                            const char HostUserId[],
                            const char HostPassword[],
                            const char GemService[],
                            BoolType passwordIsEncrypted);
  BoolType (* GciLoginEx)(const char gemstoneUsername[],
                               const char gemstonePassword[],
                               unsigned int loginFlags,
                               int haltOnErrNum);
  BoolType (* GciNbLoginEx)(const char gemstoneUsername[],
                                 const char gemstonePassword[],
                                 unsigned int loginFlags,
                                 int haltOnErrNum);
  int (* GciGetClearAllTempsCount)(void);
  void (* GciErrMsgWriteError)(GciErrMsgPrintFType *msgRoutine,
                                    GciErrMsgObjPrintFType *objPrinter,
                                    GciErrSType *theError,
                                    int errNum,
                                    BoolType displayOops,
                                    int errsInProgress);
  BoolType (* GciHelp)(const char fileName[],
                            const char cmd[],
                            GciHelpReadLineFType *inputRoutine,
                            GciHelpWriteLineFType *outputRoutine);
  void (* GciVerBanner)(FILE* f,
                             const char *pgmname,
                             const char *pgmdesc,
                             const char *pgmversion);
  void (* GciVerBannerP)(FILE* f,
                              const char *pgmname,
                              const char *pgmdesc,
                              const char *pgmversion,
                              BoolType gemPatents);
  void (* GciVerEndEdge)(FILE* f);
  char* (* GciUtlCtime)(time_t t,
                             GciCTimeStringType *result);
  void (* GciTimeStampMsStr)(time_t seconds,
                                  unsigned short milliSeconds,
                                  char *result,
                                  size_t resultSize);
  void (* GciUtlSetExeDir)(const char *argv0);
  int (* GciUtlPartialStrCmp)(const char *str1,
                                   const char *str2);
  int (* GciUtlPartialStrCmp_)(const char *str1,
                                    const char *str2,
                                    ssize_t *prefixLen);
  void (* GciUtlExit)(int status);
  void* (* GciUtlMalloc)(size_t length,
                              const char reason[]);
  void* (* GciUtlMalloc_)(size_t length,
                               const char reason[],
                               int lineNum);
  void* (* GciMalloc)(size_t length,
                           int lineNum);
  void (* GciCHeapCheck)(void);
  BoolType (* GciGemTrace)(BoolType enable);
  void (* GciFree)(void* ptr);
  FILE* (* GciUtlOpenFile)(const char* fileName,
                                const char* openMode,
                                char errBuff[],
                                size_t errBuffSize);
  int (* GciHostCallDebugger)(void);
  void (* GciHostExpandFileName)(const char inbuf[],
                                      char outbuf[],
                                      int64 outbufLength);
  void (* GciHostftell)(FILE *filePtr,
                             FLG_FILEPOS_TYPE *filePos);
  void (* GciHostfseek)(FILE *filePtr,
                             const FLG_FILEPOS_TYPE *filePos);
  double (* GciHostGetCpuTime)(void);
  BoolType (* GciHostGetEnv)(const char inStr[],
                                  char outStr[],
                                  int64 outSize);
  BoolType (* GciHostSetEnv)(const char *name,
                                  const char *value);
  void (* GciHostTempFileSpec)(char buff[],
                                    size_t buffSize);
  int (* GciHostCallDebuggerMsg)(const char* msg);
  int (* GciHostCallDebuggerMsg_fl)(const char* msg,
                                         const char* filename,
                                         int line);
  void (* GciHostFtime)(time_t *sec,
                             unsigned short *millitm);
  void (* GciHostInit)(void);
  int (* GciHostSilentGetLine)(const char prompt[],
                                    char buf[],
                                    int64 maxLen);
  BoolType (* GciHostSpawn)(const char theCommand[]);
  int (* GciHostStrCmpi)(const char *s1,
                              const char *s2);
  BoolType (* GciHostRemoveFile)(const char *fileName ,
                                      BoolType userFile);
  void (* GciHostInstallFaultHandler)(GciFaultFuncType fileFlusher,
                                           GciFaultFuncType *shutdownFct);
  void (* GciHostEnableKbInt)(GciKbIntFType *routine);
  void (* GciHostSleep)(unsigned int seconds);
  void (* GciHostMilliSleep)(unsigned int milliSeconds);
  void (* GciHostNanoSleep)(int64_t nanoseconds);
  void (* GciHostDisableInterrupts)(sigset_t *saveSignalMask);
  void (* GciHostEnableInterrupts)(sigset_t *saveSignalMask);
  BoolType (* GciDllDbInConversion)(void);
  void (* GciDllSetDbInConversion)(BoolType);
  BoolType (* GciUnixIoStat)(const char *filename,
                                  UnixIoStatSType *buf,
                                  char *errText,
                                  size_t errTextSize);
  int (* GciUnixIoFgetc_)(FILE *inFile);
  int (* GciUnixIoFgets_)(char* result,
                               size_t resultSize,
                               FILE *inFile);
  void (* GciUnixIoInterrupt)(int v);
  void (* GciHostGuarantee)(BoolType arg,
                                 const char* file,
                                 int line);
  int (* GciCompress)(char *dest,
                           uint *destLen,
                           const char *source,
                           uint sourceLen);
  int (* GciUncompress)(char *dest,
                             uint *destLen,
                             const char *source,
                             uint sourceLen);
  BoolType (* GciNscIncludesOop)(OopType theNsc,
                                      OopType theOop);
  void (* GciSetVaryingSize)(OopType collection,
                                  int64 size);
  int (* GciSetHaltOnError)(int errNum);
  int (* GciOopToI32)(OopType arg);
  int64 (* GciOopToI64)(OopType arg);
  int (* GciOopToI32_)(OopType arg,
                            BoolType *error);
  int64 (* GciOopToI64_)(OopType arg,
                              BoolType *error);
  BoolType (* GciServerIsBigEndian)(void);
  BoolType (* GciSetTraversalBufSwizzling)(BoolType enabled);
  OopType (* GciOldOopToNewOop)(unsigned int oldOop);
  BoolType (* GciReadSharedCounterNoLock)(int counterIdx,
                                               int64_t *value);
  BoolType (* GciReadSharedCounter)(int counterIdx,
                                         int64_t *value);
  BoolType (* GciIncSharedCounter)(int counterIdx,
                                        int64_t *value);
  BoolType (* GciDecSharedCounter)(int counterIdx,
                                        int64_t *value,
                                        int64_t *floor);
  BoolType (* GciSetSharedCounter)(int counterIdx,
                                        int64_t *value);
  BoolType (* GciObjIsCommitted)(OopType oop);
  int (* GciFetchSharedCounterValuesNoLock)(int startIndex,
                                                 int64_t buffer[],
                                                 size_t maxReturn);
  int (* GciFetchNumSharedCounters)(void);
  double (* GciFloatPlusInfinityVal)(void);
  double (* GciFloatMinusInfinityVal)(void);
  double (* GciFloatPlusQuietNanVal)(void);
  double (* GciFloatMinusQuietNanVal)(void);
  double (* GciFloatPlusSignalingNanVal)(void);
  double (* GciFloatMinusSignalingNanVal)(void);
  int (* GciFloatKindSign)(double aReal);
  BoolType (* GciFloatIsNaN)(double *floatPtr);
  double* (* GciFloatSwizzleRead)(double *floatPtr);
  unsigned int* (* GciFloatSwizzleReadSingle)(unsigned int *floatPtr);
  int unused;
} GciRtlJumpSType;

#if defined(__cplusplus)     /* C++ 2.0 world connection to the C world */
}
#endif

#endif /* GCIRTL_HT */
