diff options
author | Jan Kotas <jkotas@microsoft.com> | 2017-10-11 01:48:47 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-11 01:48:47 +0300 |
commit | 3f535bc5ab533146068492249053c7397808a08b (patch) | |
tree | 32c178a44b00ee9e663c683196b00aa9f8f8ba7b /src/Native | |
parent | 355946f5d5a74376274ba8c8be96dcd33290c51c (diff) |
Use default calling convention for jitinterface wrapper (#4700)
Diffstat (limited to 'src/Native')
-rw-r--r-- | src/Native/jitinterface/corinfoexception.cpp | 6 | ||||
-rw-r--r-- | src/Native/jitinterface/jithost.cpp | 12 | ||||
-rw-r--r-- | src/Native/jitinterface/jitinterface.h | 338 |
3 files changed, 181 insertions, 175 deletions
diff --git a/src/Native/jitinterface/corinfoexception.cpp b/src/Native/jitinterface/corinfoexception.cpp index 20c063f80..124080f9b 100644 --- a/src/Native/jitinterface/corinfoexception.cpp +++ b/src/Native/jitinterface/corinfoexception.cpp @@ -5,17 +5,17 @@ #include "corinfoexception.h" #include "dllexport.h" -DLL_EXPORT CorInfoException* __stdcall AllocException(const WCHAR* message, int messageLength) +DLL_EXPORT CorInfoException* AllocException(const WCHAR* message, int messageLength) { return new CorInfoException(message, messageLength); } -DLL_EXPORT void __stdcall FreeException(CorInfoException* pException) +DLL_EXPORT void FreeException(CorInfoException* pException) { delete pException; } -DLL_EXPORT const WCHAR* __stdcall GetExceptionMessage(const CorInfoException* pException) +DLL_EXPORT const WCHAR* GetExceptionMessage(const CorInfoException* pException) { return pException->GetMessage(); } diff --git a/src/Native/jitinterface/jithost.cpp b/src/Native/jitinterface/jithost.cpp index 351fe72a4..281f7a375 100644 --- a/src/Native/jitinterface/jithost.cpp +++ b/src/Native/jitinterface/jithost.cpp @@ -6,15 +6,21 @@ #include "dllexport.h" +#ifdef PLATFORM_UNIX +#define DEFAULT_CALL_CONV __cdecl +#else +#define DEFAULT_CALL_CONV __stdcall +#endif + class JitConfigProvider { public: - virtual int getIntConfigValue( + virtual int DEFAULT_CALL_CONV getIntConfigValue( const wchar_t* name, int defaultValue ) = 0; - virtual int getStringConfigValue( + virtual int DEFAULT_CALL_CONV getStringConfigValue( const wchar_t* name, wchar_t* retBuffer, int retBufferLength @@ -78,7 +84,7 @@ public: } }; -DLL_EXPORT void* __stdcall GetJitHost(JitConfigProvider* pConfigProvider) +DLL_EXPORT void* GetJitHost(JitConfigProvider* pConfigProvider) { return new JitHost(pConfigProvider); } diff --git a/src/Native/jitinterface/jitinterface.h b/src/Native/jitinterface/jitinterface.h index cb3598a76..3d6a61500 100644 --- a/src/Native/jitinterface/jitinterface.h +++ b/src/Native/jitinterface/jitinterface.h @@ -10,175 +10,175 @@ struct CORINFO_LOOKUP_KIND; struct JitInterfaceCallbacks { - unsigned int (__stdcall * getMethodAttribs)(void * thisHandle, CorInfoException** ppException, void* ftn); - void (__stdcall * setMethodAttribs)(void * thisHandle, CorInfoException** ppException, void* ftn, int attribs); - void (__stdcall * getMethodSig)(void * thisHandle, CorInfoException** ppException, void* ftn, void* sig, void* memberParent); - bool (__stdcall * getMethodInfo)(void * thisHandle, CorInfoException** ppException, void* ftn, void* info); - int (__stdcall * canInline)(void * thisHandle, CorInfoException** ppException, void* callerHnd, void* calleeHnd, unsigned int* pRestrictions); - void (__stdcall * reportInliningDecision)(void * thisHandle, CorInfoException** ppException, void* inlinerHnd, void* inlineeHnd, int inlineResult, const char* reason); - bool (__stdcall * canTailCall)(void * thisHandle, CorInfoException** ppException, void* callerHnd, void* declaredCalleeHnd, void* exactCalleeHnd, bool fIsTailPrefix); - void (__stdcall * reportTailCallDecision)(void * thisHandle, CorInfoException** ppException, void* callerHnd, void* calleeHnd, bool fIsTailPrefix, int tailCallResult, const char* reason); - void (__stdcall * getEHinfo)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned EHnumber, void* clause); - void* (__stdcall * getMethodClass)(void * thisHandle, CorInfoException** ppException, void* method); - void* (__stdcall * getMethodModule)(void * thisHandle, CorInfoException** ppException, void* method); - void (__stdcall * getMethodVTableOffset)(void * thisHandle, CorInfoException** ppException, void* method, unsigned* offsetOfIndirection, unsigned* offsetAfterIndirection, bool* isRelative); - void* (__stdcall * resolveVirtualMethod)(void * thisHandle, CorInfoException** ppException, void* virtualMethod, void* implementingClass, void* ownerType); - void* (__stdcall * getDefaultEqualityComparerClass)(void * thisHandle, CorInfoException** ppException, void* elemType); - void (__stdcall * expandRawHandleIntrinsic)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* pResult); - int (__stdcall * getIntrinsicID)(void * thisHandle, CorInfoException** ppException, void* method, bool* pMustExpand); - bool (__stdcall * isInSIMDModule)(void * thisHandle, CorInfoException** ppException, void* classHnd); - int (__stdcall * getUnmanagedCallConv)(void * thisHandle, CorInfoException** ppException, void* method); - int (__stdcall * pInvokeMarshalingRequired)(void * thisHandle, CorInfoException** ppException, void* method, void* callSiteSig); - int (__stdcall * satisfiesMethodConstraints)(void * thisHandle, CorInfoException** ppException, void* parent, void* method); - int (__stdcall * isCompatibleDelegate)(void * thisHandle, CorInfoException** ppException, void* objCls, void* methodParentCls, void* method, void* delegateCls, int* pfIsOpenDelegate); - int (__stdcall * isInstantiationOfVerifiedGeneric)(void * thisHandle, CorInfoException** ppException, void* method); - void (__stdcall * initConstraintsForVerification)(void * thisHandle, CorInfoException** ppException, void* method, int* pfHasCircularClassConstraints, int* pfHasCircularMethodConstraint); - int (__stdcall * canSkipMethodVerification)(void * thisHandle, CorInfoException** ppException, void* ftnHandle); - void (__stdcall * methodMustBeLoadedBeforeCodeIsRun)(void * thisHandle, CorInfoException** ppException, void* method); - void* (__stdcall * mapMethodDeclToMethodImpl)(void * thisHandle, CorInfoException** ppException, void* method); - void (__stdcall * getGSCookie)(void * thisHandle, CorInfoException** ppException, void* pCookieVal, void** ppCookieVal); - void (__stdcall * resolveToken)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken); - void (__stdcall * tryResolveToken)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken); - void (__stdcall * findSig)(void * thisHandle, CorInfoException** ppException, void* module, unsigned sigTOK, void* context, void* sig); - void (__stdcall * findCallSiteSig)(void * thisHandle, CorInfoException** ppException, void* module, unsigned methTOK, void* context, void* sig); - void* (__stdcall * getTokenTypeAsHandle)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken); - int (__stdcall * canSkipVerification)(void * thisHandle, CorInfoException** ppException, void* module); - int (__stdcall * isValidToken)(void * thisHandle, CorInfoException** ppException, void* module, unsigned metaTOK); - int (__stdcall * isValidStringRef)(void * thisHandle, CorInfoException** ppException, void* module, unsigned metaTOK); - int (__stdcall * shouldEnforceCallvirtRestriction)(void * thisHandle, CorInfoException** ppException, void* scope); - int (__stdcall * asCorInfoType)(void * thisHandle, CorInfoException** ppException, void* cls); - const char* (__stdcall * getClassName)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * appendClassName)(void * thisHandle, CorInfoException** ppException, wchar_t** ppBuf, int* pnBufLen, void* cls, int fNamespace, int fFullInst, int fAssembly); - int (__stdcall * isValueClass)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * canInlineTypeCheckWithObjectVTable)(void * thisHandle, CorInfoException** ppException, void* cls); - unsigned int (__stdcall * getClassAttribs)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * isStructRequiringStackAllocRetBuf)(void * thisHandle, CorInfoException** ppException, void* cls); - void* (__stdcall * getClassModule)(void * thisHandle, CorInfoException** ppException, void* cls); - void* (__stdcall * getModuleAssembly)(void * thisHandle, CorInfoException** ppException, void* mod); - const char* (__stdcall * getAssemblyName)(void * thisHandle, CorInfoException** ppException, void* assem); - void* (__stdcall * LongLifetimeMalloc)(void * thisHandle, CorInfoException** ppException, size_t sz); - void (__stdcall * LongLifetimeFree)(void * thisHandle, CorInfoException** ppException, void* obj); - size_t (__stdcall * getClassModuleIdForStatics)(void * thisHandle, CorInfoException** ppException, void* cls, void* pModule, void** ppIndirection); - unsigned (__stdcall * getClassSize)(void * thisHandle, CorInfoException** ppException, void* cls); - unsigned (__stdcall * getClassAlignmentRequirement)(void * thisHandle, CorInfoException** ppException, void* cls, int fDoubleAlignHint); - unsigned (__stdcall * getClassGClayout)(void * thisHandle, CorInfoException** ppException, void* cls, unsigned char* gcPtrs); - unsigned (__stdcall * getClassNumInstanceFields)(void * thisHandle, CorInfoException** ppException, void* cls); - void* (__stdcall * getFieldInClass)(void * thisHandle, CorInfoException** ppException, void* clsHnd, int num); - int (__stdcall * checkMethodModifier)(void * thisHandle, CorInfoException** ppException, void* hMethod, const char* modifier, int fOptional); - int (__stdcall * getNewHelper)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* callerHandle); - int (__stdcall * getNewArrHelper)(void * thisHandle, CorInfoException** ppException, void* arrayCls); - int (__stdcall * getCastingHelper)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, bool fThrowing); - int (__stdcall * getSharedCCtorHelper)(void * thisHandle, CorInfoException** ppException, void* clsHnd); - int (__stdcall * getSecurityPrologHelper)(void * thisHandle, CorInfoException** ppException, void* ftn); - void* (__stdcall * getTypeForBox)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * getBoxHelper)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * getUnBoxHelper)(void * thisHandle, CorInfoException** ppException, void* cls); - bool (__stdcall * getReadyToRunHelper)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* pGenericLookupKind, int id, void* pLookup); - void (__stdcall * getReadyToRunDelegateCtorHelper)(void * thisHandle, CorInfoException** ppException, void* pTargetMethod, void* delegateType, void* pLookup); - const char* (__stdcall * getHelperName)(void * thisHandle, CorInfoException** ppException, int helpFunc); - int (__stdcall * initClass)(void * thisHandle, CorInfoException** ppException, void* field, void* method, void* context, int speculative); - void (__stdcall * classMustBeLoadedBeforeCodeIsRun)(void * thisHandle, CorInfoException** ppException, void* cls); - void* (__stdcall * getBuiltinClass)(void * thisHandle, CorInfoException** ppException, int classId); - int (__stdcall * getTypeForPrimitiveValueClass)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * canCast)(void * thisHandle, CorInfoException** ppException, void* child, void* parent); - int (__stdcall * areTypesEquivalent)(void * thisHandle, CorInfoException** ppException, void* cls1, void* cls2); - int (__stdcall * compareTypesForCast)(void * thisHandle, CorInfoException** ppException, void* fromClass, void* toClass); - int (__stdcall * compareTypesForEquality)(void * thisHandle, CorInfoException** ppException, void* cls1, void* cls2); - void* (__stdcall * mergeClasses)(void * thisHandle, CorInfoException** ppException, void* cls1, void* cls2); - void* (__stdcall * getParentType)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * getChildType)(void * thisHandle, CorInfoException** ppException, void* clsHnd, void* clsRet); - int (__stdcall * satisfiesClassConstraints)(void * thisHandle, CorInfoException** ppException, void* cls); - int (__stdcall * isSDArray)(void * thisHandle, CorInfoException** ppException, void* cls); - unsigned (__stdcall * getArrayRank)(void * thisHandle, CorInfoException** ppException, void* cls); - void* (__stdcall * getArrayInitializationData)(void * thisHandle, CorInfoException** ppException, void* field, unsigned int size); - int (__stdcall * canAccessClass)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* callerHandle, void* pAccessHelper); - const char* (__stdcall * getFieldName)(void * thisHandle, CorInfoException** ppException, void* ftn, const char** moduleName); - void* (__stdcall * getFieldClass)(void * thisHandle, CorInfoException** ppException, void* field); - int (__stdcall * getFieldType)(void * thisHandle, CorInfoException** ppException, void* field, void* structType, void* memberParent); - unsigned (__stdcall * getFieldOffset)(void * thisHandle, CorInfoException** ppException, void* field); - bool (__stdcall * isWriteBarrierHelperRequired)(void * thisHandle, CorInfoException** ppException, void* field); - void (__stdcall * getFieldInfo)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* callerHandle, int flags, void* pResult); - bool (__stdcall * isFieldStatic)(void * thisHandle, CorInfoException** ppException, void* fldHnd); - void (__stdcall * getBoundaries)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int* cILOffsets, unsigned int** pILOffsets, void* implictBoundaries); - void (__stdcall * setBoundaries)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int cMap, void* pMap); - void (__stdcall * getVars)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int* cVars, void* vars, bool* extendOthers); - void (__stdcall * setVars)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int cVars, void* vars); - void* (__stdcall * allocateArray)(void * thisHandle, CorInfoException** ppException, unsigned int cBytes); - void (__stdcall * freeArray)(void * thisHandle, CorInfoException** ppException, void* array); - void* (__stdcall * getArgNext)(void * thisHandle, CorInfoException** ppException, void* args); - int (__stdcall * getArgType)(void * thisHandle, CorInfoException** ppException, void* sig, void* args, void* vcTypeRet); - void* (__stdcall * getArgClass)(void * thisHandle, CorInfoException** ppException, void* sig, void* args); - int (__stdcall * getHFAType)(void * thisHandle, CorInfoException** ppException, void* hClass); - int (__stdcall * GetErrorHRESULT)(void * thisHandle, CorInfoException** ppException, void* pExceptionPointers); - unsigned int (__stdcall * GetErrorMessage)(void * thisHandle, CorInfoException** ppException, wchar_t* buffer, unsigned int bufferLength); - int (__stdcall * FilterException)(void * thisHandle, CorInfoException** ppException, void* pExceptionPointers); - void (__stdcall * HandleException)(void * thisHandle, CorInfoException** ppException, void* pExceptionPointers); - void (__stdcall * ThrowExceptionForJitResult)(void * thisHandle, CorInfoException** ppException, int result); - void (__stdcall * ThrowExceptionForHelper)(void * thisHandle, CorInfoException** ppException, const void* throwHelper); - bool (__stdcall * runWithErrorTrap)(void * thisHandle, CorInfoException** ppException, void* function, void* parameter); - void (__stdcall * getEEInfo)(void * thisHandle, CorInfoException** ppException, void* pEEInfoOut); - const wchar_t* (__stdcall * getJitTimeLogFilename)(void * thisHandle, CorInfoException** ppException); - unsigned int (__stdcall * getMethodDefFromMethod)(void * thisHandle, CorInfoException** ppException, void* hMethod); - const char* (__stdcall * getMethodName)(void * thisHandle, CorInfoException** ppException, void* ftn, const char** moduleName); - const char* (__stdcall * getMethodNameFromMetadata)(void * thisHandle, CorInfoException** ppException, void* ftn, const char** className, const char** namespaceName); - unsigned (__stdcall * getMethodHash)(void * thisHandle, CorInfoException** ppException, void* ftn); - size_t (__stdcall * findNameOfToken)(void * thisHandle, CorInfoException** ppException, void* moduleHandle, unsigned int token, char* szFQName, size_t FQNameCapacity); - bool (__stdcall * getSystemVAmd64PassStructInRegisterDescriptor)(void * thisHandle, CorInfoException** ppException, void* structHnd, void* structPassInRegDescPtr); - unsigned int (__stdcall * getThreadTLSIndex)(void * thisHandle, CorInfoException** ppException, void** ppIndirection); - const void* (__stdcall * getInlinedCallFrameVptr)(void * thisHandle, CorInfoException** ppException, void** ppIndirection); - long* (__stdcall * getAddrOfCaptureThreadGlobal)(void * thisHandle, CorInfoException** ppException, void** ppIndirection); - void* (__stdcall * getHelperFtn)(void * thisHandle, CorInfoException** ppException, int ftnNum, void** ppIndirection); - void (__stdcall * getFunctionEntryPoint)(void * thisHandle, CorInfoException** ppException, void* ftn, void* pResult, int accessFlags); - void (__stdcall * getFunctionFixedEntryPoint)(void * thisHandle, CorInfoException** ppException, void* ftn, void* pResult); - void* (__stdcall * getMethodSync)(void * thisHandle, CorInfoException** ppException, void* ftn, void** ppIndirection); - int (__stdcall * getLazyStringLiteralHelper)(void * thisHandle, CorInfoException** ppException, void* handle); - void* (__stdcall * embedModuleHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); - void* (__stdcall * embedClassHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); - void* (__stdcall * embedMethodHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); - void* (__stdcall * embedFieldHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); - void (__stdcall * embedGenericHandle)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, int fEmbedParent, void* pResult); - void (__stdcall * getLocationOfThisType)(void * thisHandle, CorInfoException** ppException, CORINFO_LOOKUP_KIND* _return, void* context); - void* (__stdcall * getPInvokeUnmanagedTarget)(void * thisHandle, CorInfoException** ppException, void* method, void** ppIndirection); - void* (__stdcall * getAddressOfPInvokeFixup)(void * thisHandle, CorInfoException** ppException, void* method, void** ppIndirection); - void (__stdcall * getAddressOfPInvokeTarget)(void * thisHandle, CorInfoException** ppException, void* method, void* pLookup); - void* (__stdcall * GetCookieForPInvokeCalliSig)(void * thisHandle, CorInfoException** ppException, void* szMetaSig, void** ppIndirection); - bool (__stdcall * canGetCookieForPInvokeCalliSig)(void * thisHandle, CorInfoException** ppException, void* szMetaSig); - void* (__stdcall * getJustMyCodeHandle)(void * thisHandle, CorInfoException** ppException, void* method, void** ppIndirection); - void (__stdcall * GetProfilingHandle)(void * thisHandle, CorInfoException** ppException, int* pbHookFunction, void** pProfilerHandle, int* pbIndirectedHandles); - void (__stdcall * getCallInfo)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* pConstrainedResolvedToken, void* callerHandle, int flags, void* pResult); - int (__stdcall * canAccessFamily)(void * thisHandle, CorInfoException** ppException, void* hCaller, void* hInstanceType); - int (__stdcall * isRIDClassDomainID)(void * thisHandle, CorInfoException** ppException, void* cls); - unsigned (__stdcall * getClassDomainID)(void * thisHandle, CorInfoException** ppException, void* cls, void** ppIndirection); - void* (__stdcall * getFieldAddress)(void * thisHandle, CorInfoException** ppException, void* field, void** ppIndirection); - void* (__stdcall * getVarArgsHandle)(void * thisHandle, CorInfoException** ppException, void* pSig, void** ppIndirection); - bool (__stdcall * canGetVarArgsHandle)(void * thisHandle, CorInfoException** ppException, void* pSig); - int (__stdcall * constructStringLiteral)(void * thisHandle, CorInfoException** ppException, void* module, unsigned int metaTok, void** ppValue); - int (__stdcall * emptyStringLiteral)(void * thisHandle, CorInfoException** ppException, void** ppValue); - unsigned int (__stdcall * getFieldThreadLocalStoreID)(void * thisHandle, CorInfoException** ppException, void* field, void** ppIndirection); - void (__stdcall * setOverride)(void * thisHandle, CorInfoException** ppException, void* pOverride, void* currentMethod); - void (__stdcall * addActiveDependency)(void * thisHandle, CorInfoException** ppException, void* moduleFrom, void* moduleTo); - void* (__stdcall * GetDelegateCtor)(void * thisHandle, CorInfoException** ppException, void* methHnd, void* clsHnd, void* targetMethodHnd, void* pCtorData); - void (__stdcall * MethodCompileComplete)(void * thisHandle, CorInfoException** ppException, void* methHnd); - void* (__stdcall * getTailCallCopyArgsThunk)(void * thisHandle, CorInfoException** ppException, void* pSig, int flags); - void* (__stdcall * getMemoryManager)(void * thisHandle, CorInfoException** ppException); - void (__stdcall * allocMem)(void * thisHandle, CorInfoException** ppException, unsigned int hotCodeSize, unsigned int coldCodeSize, unsigned int roDataSize, unsigned int xcptnsCount, int flag, void** hotCodeBlock, void** coldCodeBlock, void** roDataBlock); - void (__stdcall * reserveUnwindInfo)(void * thisHandle, CorInfoException** ppException, int isFunclet, int isColdCode, unsigned int unwindSize); - void (__stdcall * allocUnwindInfo)(void * thisHandle, CorInfoException** ppException, unsigned char* pHotCode, unsigned char* pColdCode, unsigned int startOffset, unsigned int endOffset, unsigned int unwindSize, unsigned char* pUnwindBlock, int funcKind); - void* (__stdcall * allocGCInfo)(void * thisHandle, CorInfoException** ppException, size_t size); - void (__stdcall * yieldExecution)(void * thisHandle, CorInfoException** ppException); - void (__stdcall * setEHcount)(void * thisHandle, CorInfoException** ppException, unsigned cEH); - void (__stdcall * setEHinfo)(void * thisHandle, CorInfoException** ppException, unsigned EHnumber, void* clause); - int (__stdcall * logMsg)(void * thisHandle, CorInfoException** ppException, unsigned level, const char* fmt, va_list args); - int (__stdcall * doAssert)(void * thisHandle, CorInfoException** ppException, const char* szFile, int iLine, const char* szExpr); - void (__stdcall * reportFatalError)(void * thisHandle, CorInfoException** ppException, int result); - int (__stdcall * allocBBProfileBuffer)(void * thisHandle, CorInfoException** ppException, unsigned int count, void** profileBuffer); - int (__stdcall * getBBProfileData)(void * thisHandle, CorInfoException** ppException, void* ftnHnd, unsigned long* count, void** profileBuffer, unsigned long* numRuns); - void (__stdcall * recordCallSite)(void * thisHandle, CorInfoException** ppException, unsigned int instrOffset, void* callSig, void* methodHandle); - void (__stdcall * recordRelocation)(void * thisHandle, CorInfoException** ppException, void* location, void* target, unsigned short fRelocType, unsigned short slotNum, int addlDelta); - unsigned short (__stdcall * getRelocTypeHint)(void * thisHandle, CorInfoException** ppException, void* target); - void (__stdcall * getModuleNativeEntryPointRange)(void * thisHandle, CorInfoException** ppException, void** pStart, void** pEnd); - unsigned int (__stdcall * getExpectedTargetArchitecture)(void * thisHandle, CorInfoException** ppException); - unsigned int (__stdcall * getJitFlags)(void * thisHandle, CorInfoException** ppException, void* flags, unsigned int sizeInBytes); + unsigned int (* getMethodAttribs)(void * thisHandle, CorInfoException** ppException, void* ftn); + void (* setMethodAttribs)(void * thisHandle, CorInfoException** ppException, void* ftn, int attribs); + void (* getMethodSig)(void * thisHandle, CorInfoException** ppException, void* ftn, void* sig, void* memberParent); + bool (* getMethodInfo)(void * thisHandle, CorInfoException** ppException, void* ftn, void* info); + int (* canInline)(void * thisHandle, CorInfoException** ppException, void* callerHnd, void* calleeHnd, unsigned int* pRestrictions); + void (* reportInliningDecision)(void * thisHandle, CorInfoException** ppException, void* inlinerHnd, void* inlineeHnd, int inlineResult, const char* reason); + bool (* canTailCall)(void * thisHandle, CorInfoException** ppException, void* callerHnd, void* declaredCalleeHnd, void* exactCalleeHnd, bool fIsTailPrefix); + void (* reportTailCallDecision)(void * thisHandle, CorInfoException** ppException, void* callerHnd, void* calleeHnd, bool fIsTailPrefix, int tailCallResult, const char* reason); + void (* getEHinfo)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned EHnumber, void* clause); + void* (* getMethodClass)(void * thisHandle, CorInfoException** ppException, void* method); + void* (* getMethodModule)(void * thisHandle, CorInfoException** ppException, void* method); + void (* getMethodVTableOffset)(void * thisHandle, CorInfoException** ppException, void* method, unsigned* offsetOfIndirection, unsigned* offsetAfterIndirection, bool* isRelative); + void* (* resolveVirtualMethod)(void * thisHandle, CorInfoException** ppException, void* virtualMethod, void* implementingClass, void* ownerType); + void* (* getDefaultEqualityComparerClass)(void * thisHandle, CorInfoException** ppException, void* elemType); + void (* expandRawHandleIntrinsic)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* pResult); + int (* getIntrinsicID)(void * thisHandle, CorInfoException** ppException, void* method, bool* pMustExpand); + bool (* isInSIMDModule)(void * thisHandle, CorInfoException** ppException, void* classHnd); + int (* getUnmanagedCallConv)(void * thisHandle, CorInfoException** ppException, void* method); + int (* pInvokeMarshalingRequired)(void * thisHandle, CorInfoException** ppException, void* method, void* callSiteSig); + int (* satisfiesMethodConstraints)(void * thisHandle, CorInfoException** ppException, void* parent, void* method); + int (* isCompatibleDelegate)(void * thisHandle, CorInfoException** ppException, void* objCls, void* methodParentCls, void* method, void* delegateCls, int* pfIsOpenDelegate); + int (* isInstantiationOfVerifiedGeneric)(void * thisHandle, CorInfoException** ppException, void* method); + void (* initConstraintsForVerification)(void * thisHandle, CorInfoException** ppException, void* method, int* pfHasCircularClassConstraints, int* pfHasCircularMethodConstraint); + int (* canSkipMethodVerification)(void * thisHandle, CorInfoException** ppException, void* ftnHandle); + void (* methodMustBeLoadedBeforeCodeIsRun)(void * thisHandle, CorInfoException** ppException, void* method); + void* (* mapMethodDeclToMethodImpl)(void * thisHandle, CorInfoException** ppException, void* method); + void (* getGSCookie)(void * thisHandle, CorInfoException** ppException, void* pCookieVal, void** ppCookieVal); + void (* resolveToken)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken); + void (* tryResolveToken)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken); + void (* findSig)(void * thisHandle, CorInfoException** ppException, void* module, unsigned sigTOK, void* context, void* sig); + void (* findCallSiteSig)(void * thisHandle, CorInfoException** ppException, void* module, unsigned methTOK, void* context, void* sig); + void* (* getTokenTypeAsHandle)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken); + int (* canSkipVerification)(void * thisHandle, CorInfoException** ppException, void* module); + int (* isValidToken)(void * thisHandle, CorInfoException** ppException, void* module, unsigned metaTOK); + int (* isValidStringRef)(void * thisHandle, CorInfoException** ppException, void* module, unsigned metaTOK); + int (* shouldEnforceCallvirtRestriction)(void * thisHandle, CorInfoException** ppException, void* scope); + int (* asCorInfoType)(void * thisHandle, CorInfoException** ppException, void* cls); + const char* (* getClassName)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* appendClassName)(void * thisHandle, CorInfoException** ppException, wchar_t** ppBuf, int* pnBufLen, void* cls, int fNamespace, int fFullInst, int fAssembly); + int (* isValueClass)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* canInlineTypeCheckWithObjectVTable)(void * thisHandle, CorInfoException** ppException, void* cls); + unsigned int (* getClassAttribs)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* isStructRequiringStackAllocRetBuf)(void * thisHandle, CorInfoException** ppException, void* cls); + void* (* getClassModule)(void * thisHandle, CorInfoException** ppException, void* cls); + void* (* getModuleAssembly)(void * thisHandle, CorInfoException** ppException, void* mod); + const char* (* getAssemblyName)(void * thisHandle, CorInfoException** ppException, void* assem); + void* (* LongLifetimeMalloc)(void * thisHandle, CorInfoException** ppException, size_t sz); + void (* LongLifetimeFree)(void * thisHandle, CorInfoException** ppException, void* obj); + size_t (* getClassModuleIdForStatics)(void * thisHandle, CorInfoException** ppException, void* cls, void* pModule, void** ppIndirection); + unsigned (* getClassSize)(void * thisHandle, CorInfoException** ppException, void* cls); + unsigned (* getClassAlignmentRequirement)(void * thisHandle, CorInfoException** ppException, void* cls, int fDoubleAlignHint); + unsigned (* getClassGClayout)(void * thisHandle, CorInfoException** ppException, void* cls, unsigned char* gcPtrs); + unsigned (* getClassNumInstanceFields)(void * thisHandle, CorInfoException** ppException, void* cls); + void* (* getFieldInClass)(void * thisHandle, CorInfoException** ppException, void* clsHnd, int num); + int (* checkMethodModifier)(void * thisHandle, CorInfoException** ppException, void* hMethod, const char* modifier, int fOptional); + int (* getNewHelper)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* callerHandle); + int (* getNewArrHelper)(void * thisHandle, CorInfoException** ppException, void* arrayCls); + int (* getCastingHelper)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, bool fThrowing); + int (* getSharedCCtorHelper)(void * thisHandle, CorInfoException** ppException, void* clsHnd); + int (* getSecurityPrologHelper)(void * thisHandle, CorInfoException** ppException, void* ftn); + void* (* getTypeForBox)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* getBoxHelper)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* getUnBoxHelper)(void * thisHandle, CorInfoException** ppException, void* cls); + bool (* getReadyToRunHelper)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* pGenericLookupKind, int id, void* pLookup); + void (* getReadyToRunDelegateCtorHelper)(void * thisHandle, CorInfoException** ppException, void* pTargetMethod, void* delegateType, void* pLookup); + const char* (* getHelperName)(void * thisHandle, CorInfoException** ppException, int helpFunc); + int (* initClass)(void * thisHandle, CorInfoException** ppException, void* field, void* method, void* context, int speculative); + void (* classMustBeLoadedBeforeCodeIsRun)(void * thisHandle, CorInfoException** ppException, void* cls); + void* (* getBuiltinClass)(void * thisHandle, CorInfoException** ppException, int classId); + int (* getTypeForPrimitiveValueClass)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* canCast)(void * thisHandle, CorInfoException** ppException, void* child, void* parent); + int (* areTypesEquivalent)(void * thisHandle, CorInfoException** ppException, void* cls1, void* cls2); + int (* compareTypesForCast)(void * thisHandle, CorInfoException** ppException, void* fromClass, void* toClass); + int (* compareTypesForEquality)(void * thisHandle, CorInfoException** ppException, void* cls1, void* cls2); + void* (* mergeClasses)(void * thisHandle, CorInfoException** ppException, void* cls1, void* cls2); + void* (* getParentType)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* getChildType)(void * thisHandle, CorInfoException** ppException, void* clsHnd, void* clsRet); + int (* satisfiesClassConstraints)(void * thisHandle, CorInfoException** ppException, void* cls); + int (* isSDArray)(void * thisHandle, CorInfoException** ppException, void* cls); + unsigned (* getArrayRank)(void * thisHandle, CorInfoException** ppException, void* cls); + void* (* getArrayInitializationData)(void * thisHandle, CorInfoException** ppException, void* field, unsigned int size); + int (* canAccessClass)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* callerHandle, void* pAccessHelper); + const char* (* getFieldName)(void * thisHandle, CorInfoException** ppException, void* ftn, const char** moduleName); + void* (* getFieldClass)(void * thisHandle, CorInfoException** ppException, void* field); + int (* getFieldType)(void * thisHandle, CorInfoException** ppException, void* field, void* structType, void* memberParent); + unsigned (* getFieldOffset)(void * thisHandle, CorInfoException** ppException, void* field); + bool (* isWriteBarrierHelperRequired)(void * thisHandle, CorInfoException** ppException, void* field); + void (* getFieldInfo)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* callerHandle, int flags, void* pResult); + bool (* isFieldStatic)(void * thisHandle, CorInfoException** ppException, void* fldHnd); + void (* getBoundaries)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int* cILOffsets, unsigned int** pILOffsets, void* implictBoundaries); + void (* setBoundaries)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int cMap, void* pMap); + void (* getVars)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int* cVars, void* vars, bool* extendOthers); + void (* setVars)(void * thisHandle, CorInfoException** ppException, void* ftn, unsigned int cVars, void* vars); + void* (* allocateArray)(void * thisHandle, CorInfoException** ppException, unsigned int cBytes); + void (* freeArray)(void * thisHandle, CorInfoException** ppException, void* array); + void* (* getArgNext)(void * thisHandle, CorInfoException** ppException, void* args); + int (* getArgType)(void * thisHandle, CorInfoException** ppException, void* sig, void* args, void* vcTypeRet); + void* (* getArgClass)(void * thisHandle, CorInfoException** ppException, void* sig, void* args); + int (* getHFAType)(void * thisHandle, CorInfoException** ppException, void* hClass); + int (* GetErrorHRESULT)(void * thisHandle, CorInfoException** ppException, void* pExceptionPointers); + unsigned int (* GetErrorMessage)(void * thisHandle, CorInfoException** ppException, wchar_t* buffer, unsigned int bufferLength); + int (* FilterException)(void * thisHandle, CorInfoException** ppException, void* pExceptionPointers); + void (* HandleException)(void * thisHandle, CorInfoException** ppException, void* pExceptionPointers); + void (* ThrowExceptionForJitResult)(void * thisHandle, CorInfoException** ppException, int result); + void (* ThrowExceptionForHelper)(void * thisHandle, CorInfoException** ppException, const void* throwHelper); + bool (* runWithErrorTrap)(void * thisHandle, CorInfoException** ppException, void* function, void* parameter); + void (* getEEInfo)(void * thisHandle, CorInfoException** ppException, void* pEEInfoOut); + const wchar_t* (* getJitTimeLogFilename)(void * thisHandle, CorInfoException** ppException); + unsigned int (* getMethodDefFromMethod)(void * thisHandle, CorInfoException** ppException, void* hMethod); + const char* (* getMethodName)(void * thisHandle, CorInfoException** ppException, void* ftn, const char** moduleName); + const char* (* getMethodNameFromMetadata)(void * thisHandle, CorInfoException** ppException, void* ftn, const char** className, const char** namespaceName); + unsigned (* getMethodHash)(void * thisHandle, CorInfoException** ppException, void* ftn); + size_t (* findNameOfToken)(void * thisHandle, CorInfoException** ppException, void* moduleHandle, unsigned int token, char* szFQName, size_t FQNameCapacity); + bool (* getSystemVAmd64PassStructInRegisterDescriptor)(void * thisHandle, CorInfoException** ppException, void* structHnd, void* structPassInRegDescPtr); + unsigned int (* getThreadTLSIndex)(void * thisHandle, CorInfoException** ppException, void** ppIndirection); + const void* (* getInlinedCallFrameVptr)(void * thisHandle, CorInfoException** ppException, void** ppIndirection); + long* (* getAddrOfCaptureThreadGlobal)(void * thisHandle, CorInfoException** ppException, void** ppIndirection); + void* (* getHelperFtn)(void * thisHandle, CorInfoException** ppException, int ftnNum, void** ppIndirection); + void (* getFunctionEntryPoint)(void * thisHandle, CorInfoException** ppException, void* ftn, void* pResult, int accessFlags); + void (* getFunctionFixedEntryPoint)(void * thisHandle, CorInfoException** ppException, void* ftn, void* pResult); + void* (* getMethodSync)(void * thisHandle, CorInfoException** ppException, void* ftn, void** ppIndirection); + int (* getLazyStringLiteralHelper)(void * thisHandle, CorInfoException** ppException, void* handle); + void* (* embedModuleHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); + void* (* embedClassHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); + void* (* embedMethodHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); + void* (* embedFieldHandle)(void * thisHandle, CorInfoException** ppException, void* handle, void** ppIndirection); + void (* embedGenericHandle)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, int fEmbedParent, void* pResult); + void (* getLocationOfThisType)(void * thisHandle, CorInfoException** ppException, CORINFO_LOOKUP_KIND* _return, void* context); + void* (* getPInvokeUnmanagedTarget)(void * thisHandle, CorInfoException** ppException, void* method, void** ppIndirection); + void* (* getAddressOfPInvokeFixup)(void * thisHandle, CorInfoException** ppException, void* method, void** ppIndirection); + void (* getAddressOfPInvokeTarget)(void * thisHandle, CorInfoException** ppException, void* method, void* pLookup); + void* (* GetCookieForPInvokeCalliSig)(void * thisHandle, CorInfoException** ppException, void* szMetaSig, void** ppIndirection); + bool (* canGetCookieForPInvokeCalliSig)(void * thisHandle, CorInfoException** ppException, void* szMetaSig); + void* (* getJustMyCodeHandle)(void * thisHandle, CorInfoException** ppException, void* method, void** ppIndirection); + void (* GetProfilingHandle)(void * thisHandle, CorInfoException** ppException, int* pbHookFunction, void** pProfilerHandle, int* pbIndirectedHandles); + void (* getCallInfo)(void * thisHandle, CorInfoException** ppException, void* pResolvedToken, void* pConstrainedResolvedToken, void* callerHandle, int flags, void* pResult); + int (* canAccessFamily)(void * thisHandle, CorInfoException** ppException, void* hCaller, void* hInstanceType); + int (* isRIDClassDomainID)(void * thisHandle, CorInfoException** ppException, void* cls); + unsigned (* getClassDomainID)(void * thisHandle, CorInfoException** ppException, void* cls, void** ppIndirection); + void* (* getFieldAddress)(void * thisHandle, CorInfoException** ppException, void* field, void** ppIndirection); + void* (* getVarArgsHandle)(void * thisHandle, CorInfoException** ppException, void* pSig, void** ppIndirection); + bool (* canGetVarArgsHandle)(void * thisHandle, CorInfoException** ppException, void* pSig); + int (* constructStringLiteral)(void * thisHandle, CorInfoException** ppException, void* module, unsigned int metaTok, void** ppValue); + int (* emptyStringLiteral)(void * thisHandle, CorInfoException** ppException, void** ppValue); + unsigned int (* getFieldThreadLocalStoreID)(void * thisHandle, CorInfoException** ppException, void* field, void** ppIndirection); + void (* setOverride)(void * thisHandle, CorInfoException** ppException, void* pOverride, void* currentMethod); + void (* addActiveDependency)(void * thisHandle, CorInfoException** ppException, void* moduleFrom, void* moduleTo); + void* (* GetDelegateCtor)(void * thisHandle, CorInfoException** ppException, void* methHnd, void* clsHnd, void* targetMethodHnd, void* pCtorData); + void (* MethodCompileComplete)(void * thisHandle, CorInfoException** ppException, void* methHnd); + void* (* getTailCallCopyArgsThunk)(void * thisHandle, CorInfoException** ppException, void* pSig, int flags); + void* (* getMemoryManager)(void * thisHandle, CorInfoException** ppException); + void (* allocMem)(void * thisHandle, CorInfoException** ppException, unsigned int hotCodeSize, unsigned int coldCodeSize, unsigned int roDataSize, unsigned int xcptnsCount, int flag, void** hotCodeBlock, void** coldCodeBlock, void** roDataBlock); + void (* reserveUnwindInfo)(void * thisHandle, CorInfoException** ppException, int isFunclet, int isColdCode, unsigned int unwindSize); + void (* allocUnwindInfo)(void * thisHandle, CorInfoException** ppException, unsigned char* pHotCode, unsigned char* pColdCode, unsigned int startOffset, unsigned int endOffset, unsigned int unwindSize, unsigned char* pUnwindBlock, int funcKind); + void* (* allocGCInfo)(void * thisHandle, CorInfoException** ppException, size_t size); + void (* yieldExecution)(void * thisHandle, CorInfoException** ppException); + void (* setEHcount)(void * thisHandle, CorInfoException** ppException, unsigned cEH); + void (* setEHinfo)(void * thisHandle, CorInfoException** ppException, unsigned EHnumber, void* clause); + int (* logMsg)(void * thisHandle, CorInfoException** ppException, unsigned level, const char* fmt, va_list args); + int (* doAssert)(void * thisHandle, CorInfoException** ppException, const char* szFile, int iLine, const char* szExpr); + void (* reportFatalError)(void * thisHandle, CorInfoException** ppException, int result); + int (* allocBBProfileBuffer)(void * thisHandle, CorInfoException** ppException, unsigned int count, void** profileBuffer); + int (* getBBProfileData)(void * thisHandle, CorInfoException** ppException, void* ftnHnd, unsigned long* count, void** profileBuffer, unsigned long* numRuns); + void (* recordCallSite)(void * thisHandle, CorInfoException** ppException, unsigned int instrOffset, void* callSig, void* methodHandle); + void (* recordRelocation)(void * thisHandle, CorInfoException** ppException, void* location, void* target, unsigned short fRelocType, unsigned short slotNum, int addlDelta); + unsigned short (* getRelocTypeHint)(void * thisHandle, CorInfoException** ppException, void* target); + void (* getModuleNativeEntryPointRange)(void * thisHandle, CorInfoException** ppException, void** pStart, void** pEnd); + unsigned int (* getExpectedTargetArchitecture)(void * thisHandle, CorInfoException** ppException); + unsigned int (* getJitFlags)(void * thisHandle, CorInfoException** ppException, void* flags, unsigned int sizeInBytes); }; |