#ifndef COINTERP_H__
#define COINTERP_H__
/* Automatically generated by
	CCodeGeneratorGlobalStructure Melchor-tonel.1 uuid: 4909ba91-6b01-0e00-8bf8-451809d8a11a
 */


/*** Function Prototypes ***/


#if !PRODUCTION && defined(PlatformNoDbgRegParms)
# define NoDbgRegParms PlatformNoDbgRegParms
#endif

#if !defined(NoDbgRegParms)
# define NoDbgRegParms /*empty*/
#endif



#if !defined(NeverInline)
# define NeverInline /*empty*/
#endif

extern signed char accessorDepthForPrimitiveIndex(sqInt _primIndex);
extern usqInt argumentCountAddress(void);
extern void assertValidMachineCodeFrame(sqInt _instrPtr);
extern void callForCogCompiledCodeCompaction(void);
extern void ceActivateFailingPrimitiveMethod(sqInt _aPrimitiveMethod);
extern sqInt ceBaseFrameReturn(sqInt _returnValue);
#if IMMUTABILITY
extern sqInt ceCannotAssignTowithIndexvalueToAssign(sqInt _immutableObject, sqInt _index, sqInt _valueToAssign);
#endif /* IMMUTABILITY */
extern sqInt ceCannotResume(void);
extern void ceCheckAndMaybeRetryPrimitive(sqInt primIndex);
extern void ceCheckForInterrupts(void);
extern void ceCheckProfileTick(void);
extern sqInt ceContextinstVar(sqInt _maybeContext, sqInt _slotIndex);
extern sqInt ceContextinstVarvalue(sqInt _maybeMarriedContext, sqInt _slotIndex, sqInt _anOop);
extern void ceInterpretMethodFromPICreceiver(sqInt _aMethodObj, sqInt _rcvr);
extern void ceMNUFromPICMNUMethodreceiver(sqInt _aMethodObj, sqInt _rcvr);
extern sqInt ceNewHashOf(sqInt _anObject);
extern sqInt ceNonLocalReturn(sqInt _returnValue);
extern void ceReapAndResetErrorCodeFor(CogMethod *_cogMethod);
extern void ceReturnToInterpreter(sqInt _anOop);
extern sqInt ceSendAborttonumArgs(sqInt _selector, sqInt _rcvr, sqInt _numArgs);
extern sqInt ceSendFromInLineCacheMiss(sqInt _cogMethodOrPICAddr);
extern void ceSendMustBeBooleanTointerpretingAtDelta(sqInt _aNonBooleanObject, sqInt _jumpSize);
extern sqInt ceSendMustBeBoolean(sqInt _anObject);
extern void ceSendaboveClassBindingtonumArgs(sqInt _selector, sqInt _methodClassBinding, sqInt _rcvr, sqInt _numArgs);
extern void ceSendabovetonumArgs(sqInt _maybeForwardedSelector, sqInt _methodClass, sqInt _receiver, sqInt _numArgs);
extern void ceSendsupertonumArgs(sqInt _maybeForwardedSelector, sqInt _isSuperSend, sqInt _maybeForwardedReceiver, sqInt _numArgs);
extern void ceStackOverflow(sqInt _contextSwitchIfNotNil);
extern void ceTraceBlockActivation(void);
extern void ceTraceLinkedSend(sqInt _theReceiver);
extern void ceTraceStoreOfinto(sqInt _aValue, sqInt _anObject);
extern void checkAssertsEnabledInCoInterpreter(void);
extern void clearTraceLog(void);
extern CogMethod * cogMethodOf(sqInt _aMethodOop);
extern void compilationBreakpointFor(sqInt selectorOop);
extern void dumpPrimTraceLog(void);
extern void dumpTraceLog(void);
extern void executeCogMethodfromLinkedSendWithReceiver(CogMethod *_cogMethod, sqInt _rcvr);
extern void executeCogPICfromLinkedSendWithReceiverandCacheTag(CogMethod *_cogPIC, sqInt _rcvr, sqInt _cacheTag);
extern void flushExternalPrimitiveOf(sqInt _methodObj);
extern usqInt framePointerAddress(void);
extern void (*functionPointerForCompiledMethodprimitiveIndex(sqInt _methodObj, sqInt _primIndex))(void) ;
extern sqInt getCheckAllocFiller(void);
extern void ifValidWriteBackStackPointersSaveTo(void *_theCFP, void *_theCSP, char **_savedFPP, char **_savedSPP);
extern usqInt instructionPointerAddress(void);
extern usqInt interpretAddress(void);
extern sqInt isCogMethodReference(sqInt _methodHeader);
extern sqInt lookupMethodWithoutMNUProcessingForSelectorreceiver(sqInt _selector, sqInt _rcvr);
extern void markActiveMethodsAndReferents(void);
extern sqInt marryFrameCopiesTemps(void);
extern sqInt maxLookupNoMNUErrorCode(void);
extern sqInt mcprimFunctionForPrimitiveIndex(sqInt _primIndex);
extern void * methodCacheAddress(void);
extern sqInt methodHasCogMethod(sqInt _aMethodOop);
extern sqInt methodNeedsLargeContext(sqInt _methodObj);
extern sqInt methodShouldBeCogged(sqInt _aMethodObj);
extern CogMethod * mframeHomeMethodExport(void);
extern CogMethod * mframeHomeMethod(char *_theFP);
extern sqInt mMethodClass(void);
extern void mnuCompilationBreakpointFor(sqInt selectorOop);
extern usqInt newMethodAddress(void);
extern usqInt nextProfileTickAddress(void);
extern sqInt noAssertHeaderOf(sqInt _methodPointer);
extern sqInt primErrTable(void);
extern usqInt primFailCodeAddress(void);
extern usqInt primitiveFailAddress(void);
extern void * primTraceLogAddress(void);
extern usqInt primTraceLogIndexAddress(void);
extern void printCogMethod(CogMethod *_cogMethod);
extern sqInt printFrameWithSP(char *_theFP, char *_theSP);
extern void printMethodCacheFor(sqInt _thing);
extern sqInt quickPrimitiveConstantFor(sqInt _aQuickPrimitiveIndex);
extern sqInt (*quickPrimitiveGeneratorFor(sqInt _aQuickPrimitiveIndex))(void) ;
extern sqInt quickPrimitiveInstVarIndexFor(sqInt _primIndex);
extern void rawHeaderOfput(sqInt _methodOop, sqInt _cogMethodOrMethodHeader);
extern void reportMinimumUnusedHeadroom(void);
extern void setDesiredCogCodeSize(sqInt _dccs);
extern usqInt stackLimitAddress(void);
extern usqInt stackPointerAddress(void);
extern void updateStackZoneReferencesToCompiledCodePreCompaction(void);
extern usqInt varBaseAddress(void);
extern char * whereIs(sqInt _anOop);
extern sqInt mcprimHashMultiply(sqInt _receiverArg);
extern usqInt primitiveFunctionPointerAddress(void);
extern char * cStringOrNullFor(sqInt _oop);
extern void doWaitSemaphore(sqInt _sema);
extern sqInt failed(void);
extern unsigned int positive32BitValueOf(sqInt _oop);
extern usqLong positive64BitValueOf(sqInt _oop);
extern sqInt primitiveFail(void);
extern sqInt primitiveFailForOSError(sqLong _osError);
extern sqInt primitiveFailFor(sqInt _reasonCode);
extern sqInt primitiveFailureCode(void);
extern void primitiveFullClosureValueNoContextSwitch(void);
extern sqInt signalNoResume(sqInt _aSemaphore);
extern int signed32BitValueOf(sqInt _oop);
extern sqLong signed64BitValueOf(sqInt _oop);
extern void ceScheduleScavenge(void);
extern sqInt classSmallFloat(void);
extern void ensureNoForwardedLiteralsIn(sqInt _aMethodObj);
extern usqInt freeStartAddress(void);
extern usqInt getScavengeThreshold(void);
extern sqInt isForwardedClassIndex(sqInt _maybeClassIndex);
extern sqInt isImmediateClass(sqInt _classObj);
extern sqInt methodHeaderOf(sqInt _methodObj);
extern usqInt needGCFlagAddress(void);
extern sqInt receiverTagBitsForMethod(sqInt _aMethodObj);
extern usqInt scavengeThresholdAddress(void);
extern usqInt specialObjectsArrayAddress(void);
extern sqInt withoutForwardingOnandwithsendToCogit(sqInt _obj1, sqInt _obj2, sqInt _aBool, sqInt (*_selector)(sqInt,sqInt,sqInt));
extern sqInt byteSwapped(sqInt _w);
extern sqInt fetchClassTagOf(sqInt _oop);
extern sqInt floatObjectOf(double _aFloat);
extern sqInt instantiateClassindexableSizeisPinnedisOldSpace(sqInt _classObj, usqInt _nElements, sqInt _isPinned, sqInt _isOldSpace);
extern sqInt isIntegerValue(sqInt _intValue);
extern sqInt isMarked(sqInt _objOop);
extern sqInt shortentoIndexableSize(sqInt _objOop, sqInt _indexableSize);
extern usqInt smallObjectBytesForSlots(sqInt _numSlots);
extern void openScavengeLog(void);
extern void printRememberedSet(void);
extern sqInt addGCRoot(sqInt *_varLoc);
extern sqInt addressCouldBeObj(sqInt _address);
extern sqInt addressCouldBeOop(sqInt _address);
extern sqInt allocatePinnedSlots(sqInt _nSlots);
extern sqInt allocateSlotsformatclassIndex(sqInt _numSlots, sqInt _formatField, sqInt _classIndex);
extern sqInt arrayFormat(void);
extern sqInt becomewith(sqInt _array1, sqInt _array2);
extern void beRootIfOld(sqInt _oop);
extern usqInt boxedFloatObjectOf(double _aFloat);
extern sqInt byteSizeOf(sqInt _oop);
extern sqInt characterObjectOf(sqInt _characterCode);
extern usqInt characterValueOf(sqInt _oop);
extern sqInt checkedLongAt(sqInt _byteAddress);
extern sqInt checkOkayOop(usqInt _oop);
extern sqInt classArray(void);
extern sqInt classAtIndex(sqInt _classIndex);
extern sqInt classExternalAddressIndex(void);
extern sqInt classIndexFieldWidth(void);
extern sqInt classIndexOf(sqInt _objOop);
extern sqInt classOrNilAtIndex(sqInt _classIndex);
extern sqInt classSmallInteger(void);
extern sqInt classTableMinorIndexMask(void);
extern sqInt classTablePageSize(void);
extern sqInt classTableRootObj(void);
extern sqInt classTagForClass(sqInt _classObj);
extern uint64_t codeEnd(void);
extern uint64_t codeStart(void);
extern sqInt compactClassIndexOf(sqInt _objOop);
extern void countMarkedAndUnmarkdObjects(sqInt _printFlags);
extern sqInt eeInstantiateClassIndexformatnumSlots(sqInt _knownClassIndex, sqInt _objFormat, sqInt _numSlots);
extern sqInt falseObject(void);
extern sqInt fetchByteofObject(sqInt _byteIndex, sqInt _objOop);
extern sqInt fetchPointerofObject(sqInt _fieldIndex, sqInt _objOop);
extern void findStringBeginningWith(char *_aCString);
extern void findString(char *_aCString);
extern void * firstBytePointerOfDataObject(sqInt _objOop);
extern sqInt fixedFieldsOfClassFormatMask(void);
extern sqInt fixedFieldsOfClassFormat(sqInt _classFormat);
extern sqInt followForwardedObjectFieldstoDepth(sqInt _objOop, sqInt _depth);
extern sqInt followForwarded(sqInt _objOop);
extern sqInt formatOfClassSafe(sqInt _oop);
extern sqInt formatOfClass(sqInt _classPointer);
extern sqInt freeObjectWithoutCoalesce(sqInt _objOop);
extern sqInt freeObject(sqInt _objOop);
extern sqInt freePermObject(sqInt _objOop);
extern sqInt getAvoidSearchingSegmentsWithPinnedObjects(void);
extern VMRememberedSet * getFromOldSpaceRememberedSet(void);
extern VMRememberedSet * getFromPermToNewSpaceRememberedSet(void);
extern VMRememberedSet * getFromPermToOldSpaceRememberedSet(void);
extern usqInt getMaxOldSpaceSize(void);
extern VMMemoryMap * getMemoryMap(void);
extern usqLong headerForSlotsformatclassIndex(sqInt _numSlots, sqInt _formatField, sqInt _classIndex);
#if IMMUTABILITY
extern sqInt immutableBitMask(void);
#endif /* IMMUTABILITY */
extern sqInt indexOfin(sqInt _anElement, sqInt _anObject);
extern void inOrderPrintFreeTreeprintList(sqInt _freeChunk, sqInt _printNextList);
extern sqInt instanceSizeOf(sqInt _classObj);
extern sqInt instantiateClassindexableSize(sqInt _classObj, sqInt _nElements);
extern sqInt instantiateClassindexableSizeisPinned(sqInt _classObj, sqInt _nElements, sqInt _isPinned);
extern sqInt instSpecOfClassFormat(sqInt _classFormat);
extern sqInt isArrayNonImm(sqInt _oop);
extern sqInt isCharacterObject(sqInt _oop);
extern sqInt isCharacterValue(sqInt _anInteger);
extern sqInt isCompiledMethod(sqInt _objOop);
extern sqInt isFixedSizePointerFormat(sqInt _format);
extern sqInt isForwarded(sqInt _objOop);
extern sqInt isImmediate(sqInt _oop);
extern sqInt isInOldSpace(sqInt _address);
extern sqInt isInPermSpace(sqInt _address);
extern sqInt isMarkedOrPermanent(sqInt _anOop);
extern sqInt isNonImmediate(sqInt _oop);
extern sqInt isNotForwarded(sqInt _oop);
extern sqInt isOld(sqInt _oop);
extern sqInt isOopCompiledMethod(sqInt _oop);
extern sqInt isOopForwarded(sqInt _oop);
extern sqInt isOopImmutable(sqInt _oop);
extern sqInt isOopMutable(sqInt _oop);
extern sqInt isPermanent(sqInt _oop);
extern sqInt isPermSpaceRememberedSetSane(void);
extern sqInt isPinned(sqInt _objOop);
extern sqInt isReallyYoungObject(sqInt _objOop);
extern sqInt isReallyYoung(sqInt _oop);
extern sqInt isUnambiguouslyForwarder(sqInt _objOop);
extern sqInt isValidClassTag(sqInt _classIndex);
extern sqInt isYoung(sqInt _oop);
extern sqInt lastPointerOfWhileSwizzling(sqInt _objOop);
extern sqInt lastPointerOf(sqInt _objOop);
extern sqInt leakCheckBecome(void);
extern sqInt leakCheckFullGC(void);
extern sqInt leakCheckIncremental(void);
extern sqInt leakCheckNewSpaceGC(void);
extern sqInt lengthOf(sqInt _objOop);
extern sqInt literalCountOfMethodHeader(sqInt _header);
extern sqInt literalCountOf(sqInt _methodPointer);
extern void longPrintInstancesOf(sqInt _aClassOop);
extern void longPrintInstancesWithClassIndex(sqInt _classIndex);
extern void longPrintReferencesTo(sqInt _anOop);
extern void NeverInline NeverInline markAndTrace(sqInt _objOop);
extern sqInt maybeMethodClassOfseemsToBeInstantiating(sqInt _methodObj, sqInt _format);
extern sqInt maybeSplObj(sqInt _index);
extern sqInt minSlotsForShortening(void);
extern sqInt nilObject(void);
extern sqInt nonIndexablePointerFormat(void);
extern sqLong nullHeaderForMachineCodeMethod(void);
extern sqInt numBytesOf(sqInt _objOop);
extern sqInt numPointerSlotsOf(sqInt _objOop);
extern usqInt numSlotsOf(sqInt _objOop);
extern sqInt numStrongSlotsOfWeakling(sqInt _objOop);
extern sqInt objectAfter(sqInt _objOop);
extern sqInt objectBefore(sqInt _objOop);
extern sqInt obsoleteDontUseThisFetchWordofObject(sqInt _fieldIndex, sqInt _oop);
extern sqInt oldSpaceObjectAfter(sqInt _objOop);
extern sqInt popRemappableOop(void);
extern sqInt primitiveErrorTable(void);
extern void printActivationsOf(sqInt _aMethodObj);
extern void printBogons(void);
extern void printClassTableEntries(void);
extern void printContextReferencesTo(sqInt _anOop);
extern void printEntity(sqInt _oop);
extern void printForwarders(void);
extern void printFreeChunks(void);
extern void printFreeChunk(sqInt _freeChunk);
extern void printFreeListHeads(void);
extern sqInt printFreeList(sqInt _chunkOrIndex);
extern void printFreeTree(void);
extern void printHeaderOf(sqInt _objOop);
extern void printInstancesOf(sqInt _aClassOop);
extern void printInstancesWithClassIndex(sqInt _classIndex);
extern void printInvalidClassTableEntries(void);
#if LLDB
extern void printMarkedOops(void);
#endif /* LLDB */
extern void printMethodImplementorsOf(sqInt _anOop);
extern void printMethodReferencesTo(sqInt _anOop);
extern void printObjectsFromto(sqInt _startAddress, sqInt _endAddress);
extern void printObjectsWithHash(sqInt _hash);
extern void printObjStack(sqInt _objStack);
extern void NeverInline NeverInline printOopsExcept(sqInt (*_function)(sqInt));
extern void printOopsFromto(sqInt _startAddress, sqInt _endAddress);
extern void NeverInline NeverInline printOopsSuchThat(sqInt (*_function)(sqInt));
extern void printReferencesTo(sqInt _anOop);
#if LLDB
extern void printUnmarkedOops(void);
#endif /* LLDB */
extern void pushRemappableOop(sqInt _oop);
extern sqInt rawHashBitsOf(sqInt _objOop);
extern sqInt rawHeaderOf(sqInt _methodPointer);
extern sqInt rememberObjInCorrectRememberedSet(sqInt _objOop);
extern sqInt removeGCRoot(sqInt *_varLoc);
extern void setAvoidSearchingSegmentsWithPinnedObjects(sqInt _aValue);
extern sqInt setMaxOldSpaceSize(usqInt _limit);
extern void setMaxSlotsForNewSpaceAlloc(sqInt _aValue);
extern void setMinimalPermSpaceSize(sqInt _min);
extern void shortPrintObjectsFromto(sqInt _startAddress, sqInt _endAddress);
extern sqInt shouldRemapOop(sqInt _oop);
extern sqInt splObj(sqInt _index);
extern uint64_t storeCheckBoundary(void);
extern sqInt storePointerUncheckedofObjectwithValue(sqInt _fieldIndex, sqInt _objOop, sqInt _valuePointer);
extern sqInt storePointerofObjectwithValue(sqInt _fieldIndex, sqInt _objOop, sqInt _valuePointer);
extern sqInt stringForCString(const char *_aCString);
extern void tenuringIncrementalGC(void);
extern sqInt topRemappableOop(void);
extern sqInt trueObject(void);
extern void validateObjectMemory(void);
extern sqInt validFreeTree(void);
extern sqInt vmEndianness(void);
extern sqInt zeroSlotsNonIndexablePointerFormat(void);
extern sqInt remapObj(sqInt _objOop);
extern sqInt shouldRemapObj(sqInt _objOop);
extern sqInt activeProcess(void);
extern void addIdleUsecs(sqInt _idleUsecs);
extern sqInt argumentCountOfClosure(sqInt _closurePointer);
extern sqInt argumentCountOfMethodHeader(sqInt _header);
extern sqInt argumentCountOf(sqInt _methodPointer);
extern sqInt canContextSwitchIfActivatingheader(sqInt _theMethod, sqInt _methodHeader);
extern sqInt copiedValueCountOfFullClosure(sqInt _closurePointer);
extern sqInt doSignalSemaphoreWithIndex(sqInt _index);
extern void doWaitSemaphorereEnterInterpreter(sqInt _sema, sqInt _hasToReenter);
extern void (*functionPointerForinClass(sqInt _primIdx))(void) ;
extern sqInt getExternalSemaphoreWithIndex(sqInt _index);
extern usqLong getNextWakeupUsecs(void);
extern sqInt * getStackPointer(void);
extern sqInt hasCheckAllocFiller(void);
extern sqInt hasProfileSemaphore(void);
extern usqInt highBit(usqInt _anUnsignedValue);
extern sqInt isFloatObject(sqInt _oop);
extern sqInt isKindOfInteger(sqInt _oop);
extern sqInt isLargeIntegerObject(sqInt _oop);
extern sqInt isLargeNegativeIntegerObject(sqInt _oop);
extern sqInt isLargePositiveIntegerObject(sqInt _oop);
extern sqInt isQuickPrimitiveIndex(sqInt _anInteger);
extern sqInt isReadMediatedContextInstVarIndex(sqInt _index);
extern sqInt isWriteMediatedContextInstVarIndex(sqInt _index);
extern sqInt isKindOfClass(sqInt _oop, sqInt _aClass);
extern sqInt literalofMethod(sqInt _offset, sqInt _methodPointer);
extern void longPrintOop(sqInt _oop);
extern sqInt longStoreBytecodeForHeader(sqInt methodHeader);
extern sqInt lookupSelectorinClass(sqInt _selector, sqInt _class);
extern sqInt maybeSelectorOfMethod(sqInt _methodObj);
extern sqInt methodClassAssociationOf(sqInt _methodPointer);
extern sqInt methodClassOf(sqInt _methodPointer);
extern sqInt methodPrimitiveIndex(void);
extern sqInt objCouldBeClassObj(sqInt _objOop);
extern sqInt penultimateLiteralOf(sqInt _aMethodOop);
extern sqInt popStack(void);
extern sqInt positive32BitIntegerFor(unsigned int _integerValue);
extern sqInt positive64BitIntegerFor(usqLong _integerValue);
extern sqInt primitiveIndexOfMethodheader(sqInt _theMethod, sqInt _methodHeader);
extern sqInt primitiveIndexOf(sqInt _methodPointer);
extern void printAllPermanentObjects(void);
extern void printAllStacks(void);
extern sqInt printCallStackOf(sqInt _aContextOrProcessOrFrame);
extern void printChar(sqInt _aByte);
extern sqInt printHexnp(usqInt _n);
extern void printHex(usqInt n);
extern void printLikelyImplementorsOfSelector(sqInt _selector);
extern void printMethodCache(void);
extern void printMethodDictionaryOf(sqInt _behavior);
extern void printMethodDictionary(sqInt _dictionary);
extern void printPointersTo(sqInt _anAddress);
extern void printProcessStack(sqInt _aProcess);
extern sqInt printProcsOnList(sqInt _procList);
extern sqInt printStackCallStackOf(sqInt _aContextOrProcessOrFrame);
extern void printStackReferencesTo(sqInt _oop);
extern void printStringOf(sqInt _oop);
extern void print(char *s);
extern void setBreakMNUSelector(char *_aString);
extern void setBreakSelector(char *_aString);
extern sqInt setDesiredEdenBytes(usqLong _bytes);
extern void setDesiredStackPageBytes(sqInt _desiredBytes);
extern void setMaxStacksToPrint(sqInt _anInteger);
extern void setNextWakeupUsecs(usqLong _value);
extern void shortPrintFrameAndNCallers(char *_theFP, sqInt _n);
extern sqInt signed32BitIntegerFor(sqInt _integerValue);
extern sqInt signed64BitIntegerFor(sqLong _integerValue);
extern sqInt sizeOfCallPrimitiveBytecode(sqInt methodHeader);
extern sqInt sizeOfLongStoreTempBytecode(sqInt methodHeader);
extern sqInt specialSelectorNumArgs(sqInt _index);
extern sqInt specialSelector(sqInt _index);
extern usqIntptr_t stackPositiveMachineIntegerValue(sqInt _offset);
extern sqIntptr_t stackSignedMachineIntegerValue(sqInt _offset);
extern sqInt stackTop(void);
extern sqInt stackValue(sqInt _offset);
extern sqInt startPCOfMethodHeader(sqInt _methodHeader);
extern sqInt startPCOfMethod(sqInt _aCompiledMethod);
extern sqInt supendActiveProcess(void);
extern sqInt tempCountOf(sqInt _methodPointer);
extern sqInt temporaryCountOfMethodHeader(sqInt _header);
extern sqInt ultimateLiteralOf(sqInt _aMethodOop);
extern void ultimateLiteralOfput(sqInt _aMethodOop, sqInt _aValue);
extern void * getHandler(sqInt _anOop);
extern sqInt ptEnterInterpreterFromCallback(void *_aPointer);
extern sqInt ptExitInterpreterToCallback(void *_aPointer);
extern void * readAddress(sqInt _anOop);
extern sqInt writeAddressto(sqInt _anOop, void *_aValue);
extern sqInt readImageNamed(char *_imageName);
extern sqInt fixedPermSpaceStart(VMMemoryMap * self_in_fixedPermSpaceStart);
extern uint64_t getNewSpaceStart(VMMemoryMap * self_in_getNewSpaceStart);
extern uint64_t getOldSpaceStart(VMMemoryMap * self_in_getOldSpaceStart);
extern sqInt isInCodeZone(VMMemoryMap * self_in_isInCodeZone, sqInt _anOop);
extern sqInt isOldObject(VMMemoryMap * self_in_isOldObject, sqInt _anOop);
extern sqInt isPermanentObject(VMMemoryMap * self_in_isPermanentObject, sqInt _anOop);
extern sqInt isYoungObject(VMMemoryMap * self_in_isYoungObject, sqInt _anOop);
extern uint64_t startOfObjectMemory(VMMemoryMap * self_in_startOfObjectMemory);
extern sqInt rememberWithoutMarkingAsRemembered(VMRememberedSet * self_in_rememberWithoutMarkingAsRemembered, sqInt _objOop);
extern sqInt remember(VMRememberedSet * self_in_remember, sqInt _objOop);


/*** Global Variables ***/
VM_EXPORT extern sqInt checkAllocFiller;
VM_EXPORT extern sqInt checkedPluginName;
VM_EXPORT extern sqInt checkForLeaks;
VM_EXPORT extern sqInt desiredCogCodeSize;
VM_EXPORT extern sqInt desiredEdenBytes;
VM_EXPORT extern sqInt desiredNumStackPages;
VM_EXPORT extern sqInt extraVMMemory;
VM_EXPORT extern sqInt maxLiteralCountForCompile ;
VM_EXPORT extern usqInt maxOldSpaceSize;
VM_EXPORT extern sqInt minBackwardJumpCountForCompile ;
VM_EXPORT extern volatile int sendTrace;
VM_EXPORT extern sqInt suppressHeartbeatFlag;


/*** Macros ***/
#define mnuCompilationBreakpoint(sel, len) do { \
	if ((len) == -breakSelectorLength \
	 && !strncmp((char *)((sel) + BaseHeaderSize), breakSelector, -breakSelectorLength)) { \
		suppressHeartbeatFlag = 1; \
		compilationBreakpointFor(sel); \
	} \
} while (0)
#define primNumberExternalCall() 117
#define numTagBits() 3
#define shiftForWord() 3
#define smallFloatExponentBits() 8
#define smallFloatExponentOffset() 896
#define smallFloatMantissaBits() 52
#define smallFloatTag() 4
#define tagMask() 0x7
#define characterTag() 2
#define classIndexMask() 0x3FFFFF
#define classTableMajorIndexShift() 10
#define firstByteFormat() 16
#define firstCompiledMethodFormat() 24
#define firstLongFormat() 10
#define firstShortFormat() 12
#define fixedFieldsFieldWidth() 16
#define formatMask() 0x1F
#define formatShift() 24
#define identityHashFullWordShift() 32
#define identityHashHalfWordMask() 0x3FFFFF
#define indexablePointersFormat() 3
#define isForwardedObjectClassIndexPun() 8
#define numSlotsFullShift() 56
#define numSlotsHalfShift() 24
#define numSlotsMask() 0xFF
#define rememberedBitShift() 29
#define sixtyFourBitIndexableFormat() 9
#define smallIntegerTag() 1
#define weakArrayFormat() 4
#define alternateHeaderNumLiteralsMask() 0x7FFF
#define flush() fflush(stdout)
#define remoteIsInstVarAccess() 128

#endif