Add IsCollectible property to Memberinfo and MethodInfo (#21155)
[platform/upstream/coreclr.git] / src / vm / ecalllist.h
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4 // ECallList.H
5 //
6 // This file contains definitions of FCall entrypoints
7 //
8
9
10
11
12 #ifndef FCFuncElement
13 #define FCFuncElement(name, impl)
14 #endif
15
16 #ifndef FCFuncElementSig
17 #define FCFuncElementSig(name,sig,impl)
18 #endif
19
20 #ifndef FCIntrinsic
21 #define FCIntrinsic(name,impl,intrinsicID)
22 #endif
23
24 #ifndef FCIntrinsicSig
25 #define FCIntrinsicSig(name,sig,impl,intrinsicID)
26 #endif
27
28 #ifndef QCFuncElement
29 #define QCFuncElement(name,impl)
30 #endif
31
32 #ifndef FCDynamic
33 #define FCDynamic(name,intrinsicID,dynamicID)
34 #endif
35
36 #ifndef FCDynamicSig
37 #define FCDynamicSig(name,sig,intrinsicID,dynamicID)
38 #endif
39
40 #ifndef FCUnreferenced
41 #define FCUnreferenced
42 #endif
43
44 #ifndef FCFuncStart
45 #define FCFuncStart(name)
46 #endif
47
48 #ifndef FCFuncEnd
49 #define FCFuncEnd()
50 #endif
51
52 #ifndef FCClassElement
53 #define FCClassElement(name,namespace,funcs)
54 #endif
55
56 //
57 //
58 // Entrypoint definitions
59 //
60 //
61
62
63
64 FCFuncStart(gDependentHandleFuncs)
65     FCFuncElement("nInitialize",             DependentHandle::nInitialize)
66     FCFuncElement("nGetPrimary",             DependentHandle::nGetPrimary)
67     FCFuncElement("nGetPrimaryAndSecondary", DependentHandle::nGetPrimaryAndSecondary)
68     FCFuncElement("nFree",                   DependentHandle::nFree)
69     FCFuncElement("nSetPrimary",             DependentHandle::nSetPrimary)
70     FCFuncElement("nSetSecondary",           DependentHandle::nSetSecondary)
71 FCFuncEnd()
72
73
74
75
76
77 FCFuncStart(gEnumFuncs)
78     FCFuncElement("InternalGetUnderlyingType",  ReflectionEnum::InternalGetEnumUnderlyingType)
79     FCFuncElement("InternalGetCorElementType",  ReflectionEnum::InternalGetCorElementType)
80     QCFuncElement("GetEnumValuesAndNames",  ReflectionEnum::GetEnumValuesAndNames)
81     FCFuncElement("InternalBoxEnum", ReflectionEnum::InternalBoxEnum)
82     FCFuncElement("Equals", ReflectionEnum::InternalEquals)
83     FCFuncElement("InternalCompareTo", ReflectionEnum::InternalCompareTo)    
84     FCFuncElement("InternalHasFlag", ReflectionEnum::InternalHasFlag)
85 FCFuncEnd()
86
87
88 FCFuncStart(gSymWrapperCodePunkSafeHandleFuncs)
89     FCFuncElement("nGetDReleaseTarget", COMPunkSafeHandle::nGetDReleaseTarget)
90 FCFuncEnd()
91
92
93 FCFuncStart(gObjectFuncs)
94     FCIntrinsic("GetType", ObjectNative::GetClass, CORINFO_INTRINSIC_Object_GetType)
95     FCFuncElement("MemberwiseClone", ObjectNative::Clone)
96 FCFuncEnd()
97
98 FCFuncStart(gStringFuncs)
99     FCDynamic("FastAllocateString", CORINFO_INTRINSIC_Illegal, ECall::FastAllocateString)
100     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_ArrChar_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorCharArrayManaged)
101     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_ArrChar_Int_Int_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorCharArrayStartLengthManaged)
102     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrChar_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorCharPtrManaged)
103     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrChar_Int_Int_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorCharPtrStartLengthManaged)
104     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_Char_Int_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorCharCountManaged)
105     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_ReadOnlySpanOfChar_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorReadOnlySpanOfCharManaged)
106     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrSByt_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorSBytePtrManaged)
107     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrSByt_Int_Int_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorSBytePtrStartLengthManaged)
108     FCDynamicSig(COR_CTOR_METHOD_NAME, &gsig_IM_PtrSByt_Int_Int_Encoding_RetVoid, CORINFO_INTRINSIC_Illegal, ECall::CtorSBytePtrStartLengthEncodingManaged)
109     FCFuncElement("IsFastSort", COMString::IsFastSort)
110     FCIntrinsic("get_Length", COMString::Length, CORINFO_INTRINSIC_StringLength)
111     FCIntrinsic("get_Chars", COMString::GetCharAt, CORINFO_INTRINSIC_StringGetChar)
112     FCFuncElement("IsAscii", COMString::IsAscii)
113     FCFuncElement("SetTrailByte", COMString::FCSetTrailByte)
114     FCFuncElement("TryGetTrailByte", COMString::FCTryGetTrailByte)
115     FCFuncElement("IsInterned", AppDomainNative::IsStringInterned)
116     FCFuncElement("Intern", AppDomainNative::GetOrInternString)
117 FCFuncEnd()
118
119 FCFuncStart(gValueTypeFuncs)
120     FCFuncElement("CanCompareBits", ValueTypeHelper::CanCompareBits)
121     FCFuncElement("FastEqualsCheck", ValueTypeHelper::FastEqualsCheck)
122     FCFuncElement("GetHashCode", ValueTypeHelper::GetHashCode)
123     FCFuncElement("GetHashCodeOfPtr", ValueTypeHelper::GetHashCodeOfPtr)
124 FCFuncEnd()
125
126 FCFuncStart(gDiagnosticsDebugger)
127     FCFuncElement("BreakInternal", DebugDebugger::Break)
128     FCFuncElement("LaunchInternal", DebugDebugger::Launch)
129     FCFuncElement("get_IsAttached", DebugDebugger::IsDebuggerAttached)
130     FCFuncElement("Log", DebugDebugger::Log)
131     FCFuncElement("IsLogging", DebugDebugger::IsLogging)
132     FCFuncElement("CustomNotification", DebugDebugger::CustomNotification)
133 FCFuncEnd()
134
135 FCFuncStart(gDiagnosticsStackTrace)
136     FCFuncElement("GetStackFramesInternal", DebugStackTrace::GetStackFramesInternal)
137 FCFuncEnd()
138
139 FCFuncStart(gDateTimeFuncs)
140     FCFuncElement("GetSystemTimeAsFileTime", SystemNative::__GetSystemTimeAsFileTime)
141 FCFuncEnd()
142
143 FCFuncStart(gEnvironmentFuncs)
144     FCFuncElement("get_TickCount", SystemNative::GetTickCount)
145     QCFuncElement("_Exit", SystemNative::Exit)
146     FCFuncElement("set_ExitCode", SystemNative::SetExitCode)
147     FCFuncElement("get_ExitCode", SystemNative::GetExitCode)
148     FCFuncElement("get_HasShutdownStarted", SystemNative::HasShutdownStarted)
149     QCFuncElement("GetProcessorCount", SystemNative::GetProcessorCount)
150     FCFuncElement("GetCommandLineArgsNative", SystemNative::GetCommandLineArgs)
151
152 #if defined(FEATURE_COMINTEROP)
153     QCFuncElement("WinRTSupported", SystemNative::WinRTSupported)
154 #endif // FEATURE_COMINTEROP
155     FCFuncElementSig("FailFast", &gsig_SM_Str_RetVoid, SystemNative::FailFast)
156     FCFuncElementSig("FailFast", &gsig_SM_Str_Exception_RetVoid, SystemNative::FailFastWithException)
157     FCFuncElementSig("FailFast", &gsig_SM_Str_Exception_Str_RetVoid, SystemNative::FailFastWithExceptionAndSource)
158 FCFuncEnd()
159
160 FCFuncStart(gSerializationFuncs)
161     FCFuncElement("nativeGetUninitializedObject", ReflectionSerialization::GetUninitializedObject)
162 FCFuncEnd()
163
164 FCFuncStart(gExceptionFuncs)
165     FCFuncElement("IsImmutableAgileException", ExceptionNative::IsImmutableAgileException)
166     FCFuncElement("nIsTransient", ExceptionNative::IsTransient)
167     FCFuncElement("GetMethodFromStackTrace", SystemNative::GetMethodFromStackTrace)
168     QCFuncElement("GetMessageFromNativeResources", ExceptionNative::GetMessageFromNativeResources)
169     FCFuncElement("PrepareForForeignExceptionRaise", ExceptionNative::PrepareForForeignExceptionRaise)
170     FCFuncElement("CopyStackTrace", ExceptionNative::CopyStackTrace)
171     FCFuncElement("CopyDynamicMethods", ExceptionNative::CopyDynamicMethods)
172     FCFuncElement("GetStackTracesDeepCopy", ExceptionNative::GetStackTracesDeepCopy)
173     FCFuncElement("SaveStackTracesFromDeepCopy", ExceptionNative::SaveStackTracesFromDeepCopy)
174 FCFuncEnd()
175
176 FCFuncStart(gSafeHandleFuncs)
177     FCFuncElement("InternalDispose", SafeHandle::DisposeNative)
178     FCFuncElement("InternalFinalize", SafeHandle::Finalize)
179     FCFuncElement("SetHandleAsInvalid", SafeHandle::SetHandleAsInvalid)
180     FCFuncElement("DangerousAddRef", SafeHandle::DangerousAddRef)
181     FCFuncElement("DangerousRelease", SafeHandle::DangerousRelease)
182 FCFuncEnd()
183
184 FCFuncStart(gCriticalHandleFuncs)
185     FCFuncElement("FireCustomerDebugProbe", CriticalHandle::FireCustomerDebugProbe)
186 FCFuncEnd()
187
188 FCFuncStart(gTypedReferenceFuncs)
189     FCFuncElement("InternalToObject", ReflectionInvocation::TypedReferenceToObject)
190     FCFuncElement("InternalSetTypedReference", ReflectionInvocation::SetTypedReference)
191     FCFuncElement("InternalMakeTypedReference", ReflectionInvocation::MakeTypedReference)
192 FCFuncEnd()
193
194 FCFuncStart(gSystem_Type)
195     FCIntrinsic("GetTypeFromHandle", RuntimeTypeHandle::GetTypeFromHandle, CORINFO_INTRINSIC_GetTypeFromHandle)
196     FCFuncElement("GetTypeFromHandleUnsafe", RuntimeTypeHandle::GetRuntimeType)
197     FCIntrinsic("op_Equality", RuntimeTypeHandle::TypeEQ, CORINFO_INTRINSIC_TypeEQ)
198     FCIntrinsic("op_Inequality", RuntimeTypeHandle::TypeNEQ, CORINFO_INTRINSIC_TypeNEQ)
199 FCFuncEnd()
200
201 FCFuncStart(gSystem_RuntimeType)
202     FCFuncElement("GetGUID", ReflectionInvocation::GetGUID)
203     FCFuncElement("_CreateEnum", ReflectionInvocation::CreateEnum)
204     FCFuncElement("CanValueSpecialCast", ReflectionInvocation::CanValueSpecialCast)
205     FCFuncElement("AllocateValueType", ReflectionInvocation::AllocateValueType)
206 #if defined(FEATURE_COMINTEROP)
207     FCFuncElement("GetTypeFromCLSIDImpl", ReflectionInvocation::GetClassFromCLSID)
208     FCFuncElement("GetTypeFromProgIDImpl", ReflectionInvocation::GetClassFromProgID)
209     FCFuncElement("InvokeDispMethod", ReflectionInvocation::InvokeDispMethod)
210 #ifdef FEATURE_COMINTEROP_WINRT_MANAGED_ACTIVATION
211     FCFuncElement("IsTypeExportedToWindowsRuntime", RuntimeTypeHandle::IsTypeExportedToWindowsRuntime)
212 #endif
213     FCFuncElement("IsWindowsRuntimeObjectType", RuntimeTypeHandle::IsWindowsRuntimeObjectType)
214 #endif // defined(FEATURE_COMINTEROP) 
215 FCFuncEnd()
216
217 FCFuncStart(gJitHelpers)
218     FCFuncElement("UnsafeSetArrayElement", JitHelpers::UnsafeSetArrayElement)
219 #ifdef _DEBUG
220     FCFuncElement("IsAddressInStack", ReflectionInvocation::IsAddressInStack)
221 #endif
222 FCFuncEnd()
223
224 FCFuncStart(gCOMTypeHandleFuncs)
225     FCFuncElement("CreateInstance", RuntimeTypeHandle::CreateInstance)
226     FCFuncElement("CreateCaInstance", RuntimeTypeHandle::CreateCaInstance)
227     FCFuncElement("CreateInstanceForAnotherGenericParameter", RuntimeTypeHandle::CreateInstanceForGenericType)
228     QCFuncElement("GetGCHandle", RuntimeTypeHandle::GetGCHandle)
229
230     FCFuncElement("IsInstanceOfType", RuntimeTypeHandle::IsInstanceOfType)
231     FCFuncElement("GetDeclaringMethod", RuntimeTypeHandle::GetDeclaringMethod)
232     FCFuncElement("GetDeclaringType", RuntimeTypeHandle::GetDeclaringType)
233     QCFuncElement("GetDefaultConstructor", RuntimeTypeHandle::GetDefaultConstructor)
234     QCFuncElement("MakePointer", RuntimeTypeHandle::MakePointer)
235     QCFuncElement("MakeByRef", RuntimeTypeHandle::MakeByRef)
236     QCFuncElement("MakeSZArray", RuntimeTypeHandle::MakeSZArray)
237     QCFuncElement("MakeArray", RuntimeTypeHandle::MakeArray)
238     QCFuncElement("IsCollectible", RuntimeTypeHandle::IsCollectible)
239     FCFuncElement("GetFirstIntroducedMethod", RuntimeTypeHandle::GetFirstIntroducedMethod)
240     FCFuncElement("GetNextIntroducedMethod", RuntimeTypeHandle::GetNextIntroducedMethod)
241     FCFuncElement("GetCorElementType", RuntimeTypeHandle::GetCorElementType)
242     FCFuncElement("GetAssembly", RuntimeTypeHandle::GetAssembly)
243     FCFuncElement("GetModule", RuntimeTypeHandle::GetModule)
244     FCFuncElement("GetBaseType", RuntimeTypeHandle::GetBaseType)
245     FCFuncElement("GetElementType", RuntimeTypeHandle::GetElementType)
246     FCFuncElement("GetArrayRank", RuntimeTypeHandle::GetArrayRank)
247     FCFuncElement("GetToken", RuntimeTypeHandle::GetToken)
248     FCFuncElement("_GetUtf8Name", RuntimeTypeHandle::GetUtf8Name)
249     FCFuncElement("GetMethodAt", RuntimeTypeHandle::GetMethodAt)
250     FCFuncElement("GetFields", RuntimeTypeHandle::GetFields)
251     FCFuncElement("GetInterfaces", RuntimeTypeHandle::GetInterfaces)
252     QCFuncElement("GetConstraints", RuntimeTypeHandle::GetConstraints)
253     FCFuncElement("GetAttributes", RuntimeTypeHandle::GetAttributes)
254     FCFuncElement("_GetMetadataImport", RuntimeTypeHandle::GetMetadataImport)
255     FCFuncElement("GetNumVirtuals", RuntimeTypeHandle::GetNumVirtuals)
256     QCFuncElement("VerifyInterfaceIsImplemented", RuntimeTypeHandle::VerifyInterfaceIsImplemented)
257     QCFuncElement("GetInterfaceMethodImplementation", RuntimeTypeHandle::GetInterfaceMethodImplementation)
258     FCFuncElement("IsComObject", RuntimeTypeHandle::IsComObject)
259     FCFuncElement("IsValueType", RuntimeTypeHandle::IsValueType)
260     FCFuncElement("IsInterface", RuntimeTypeHandle::IsInterface)
261     FCFuncElement("IsByRefLike", RuntimeTypeHandle::IsByRefLike)
262     QCFuncElement("_IsVisible", RuntimeTypeHandle::IsVisible)
263     QCFuncElement("ConstructName", RuntimeTypeHandle::ConstructName)
264     FCFuncElement("CanCastTo", RuntimeTypeHandle::CanCastTo)
265     QCFuncElement("GetTypeByName", RuntimeTypeHandle::GetTypeByName)
266     QCFuncElement("GetTypeByNameUsingCARules", RuntimeTypeHandle::GetTypeByNameUsingCARules)
267     QCFuncElement("GetInstantiation", RuntimeTypeHandle::GetInstantiation)
268     QCFuncElement("Instantiate", RuntimeTypeHandle::Instantiate)
269     QCFuncElement("GetGenericTypeDefinition", RuntimeTypeHandle::GetGenericTypeDefinition)
270     FCFuncElement("HasInstantiation", RuntimeTypeHandle::HasInstantiation)
271     FCFuncElement("GetGenericVariableIndex", RuntimeTypeHandle::GetGenericVariableIndex)
272     FCFuncElement("IsGenericVariable", RuntimeTypeHandle::IsGenericVariable)
273     FCFuncElement("IsGenericTypeDefinition", RuntimeTypeHandle::IsGenericTypeDefinition)
274     FCFuncElement("ContainsGenericVariables", RuntimeTypeHandle::ContainsGenericVariables)
275     FCFuncElement("SatisfiesConstraints", RuntimeTypeHandle::SatisfiesConstraints)
276     FCFuncElement("Allocate", RuntimeTypeHandle::Allocate) //for A.CI
277     FCFuncElement("CompareCanonicalHandles", RuntimeTypeHandle::CompareCanonicalHandles)
278     FCIntrinsic("GetValueInternal", RuntimeTypeHandle::GetValueInternal, CORINFO_INTRINSIC_RTH_GetValueInternal)
279 FCFuncEnd()
280
281 FCFuncStart(gMetaDataImport)
282     FCFuncElement("_GetDefaultValue", MetaDataImport::GetDefaultValue) 
283     FCFuncElement("_GetName", MetaDataImport::GetName) 
284     FCFuncElement("_GetUserString", MetaDataImport::GetUserString) 
285     FCFuncElement("_GetScopeProps", MetaDataImport::GetScopeProps)  
286     FCFuncElement("_GetClassLayout", MetaDataImport::GetClassLayout) 
287     FCFuncElement("_GetSignatureFromToken", MetaDataImport::GetSignatureFromToken) 
288     FCFuncElement("_GetNamespace", MetaDataImport::GetNamespace) 
289     FCFuncElement("_GetEventProps", MetaDataImport::GetEventProps)
290     FCFuncElement("_GetFieldDefProps", MetaDataImport::GetFieldDefProps)
291     FCFuncElement("_GetPropertyProps", MetaDataImport::GetPropertyProps)  
292     FCFuncElement("_GetParentToken", MetaDataImport::GetParentToken)  
293     FCFuncElement("_GetParamDefProps", MetaDataImport::GetParamDefProps) 
294     FCFuncElement("_GetGenericParamProps", MetaDataImport::GetGenericParamProps) 
295     
296     FCFuncElement("_Enum", MetaDataImport::Enum) 
297     FCFuncElement("_GetMemberRefProps", MetaDataImport::GetMemberRefProps) 
298     FCFuncElement("_GetCustomAttributeProps", MetaDataImport::GetCustomAttributeProps) 
299     FCFuncElement("_GetFieldOffset", MetaDataImport::GetFieldOffset) 
300
301     FCFuncElement("_GetSigOfFieldDef", MetaDataImport::GetSigOfFieldDef) 
302     FCFuncElement("_GetSigOfMethodDef", MetaDataImport::GetSigOfMethodDef) 
303     FCFuncElement("_GetFieldMarshal", MetaDataImport::GetFieldMarshal) 
304     FCFuncElement("_GetPInvokeMap", MetaDataImport::GetPinvokeMap) 
305     FCFuncElement("_IsValidToken", MetaDataImport::IsValidToken) 
306     FCFuncElement("_GetMarshalAs", MetaDataImport::GetMarshalAs)  
307 FCFuncEnd()
308
309 FCFuncStart(gSignatureNative)
310     FCFuncElement("GetSignature", SignatureNative::GetSignature)
311     FCFuncElement("GetCustomModifiers", SignatureNative::GetCustomModifiers)
312     FCFuncElement("CompareSig", SignatureNative::CompareSig)
313 FCFuncEnd()
314
315 FCFuncStart(gRuntimeMethodHandle)
316     QCFuncElement("ConstructInstantiation", RuntimeMethodHandle::ConstructInstantiation)
317     FCFuncElement("_GetCurrentMethod", RuntimeMethodHandle::GetCurrentMethod)
318     FCFuncElement("InvokeMethod", RuntimeMethodHandle::InvokeMethod)
319     QCFuncElement("GetFunctionPointer", RuntimeMethodHandle::GetFunctionPointer)
320     QCFuncElement("GetIsCollectible", RuntimeMethodHandle::GetIsCollectible)
321     FCFuncElement("GetImplAttributes", RuntimeMethodHandle::GetImplAttributes)
322     FCFuncElement("GetAttributes", RuntimeMethodHandle::GetAttributes)
323     FCFuncElement("GetDeclaringType", RuntimeMethodHandle::GetDeclaringType)
324     FCFuncElement("GetSlot", RuntimeMethodHandle::GetSlot)
325     FCFuncElement("GetMethodDef", RuntimeMethodHandle::GetMethodDef)
326     FCFuncElement("GetName", RuntimeMethodHandle::GetName)
327     FCFuncElement("_GetUtf8Name", RuntimeMethodHandle::GetUtf8Name)
328     FCFuncElement("MatchesNameHash", RuntimeMethodHandle::MatchesNameHash)
329     QCFuncElement("GetMethodInstantiation", RuntimeMethodHandle::GetMethodInstantiation)
330     FCFuncElement("HasMethodInstantiation", RuntimeMethodHandle::HasMethodInstantiation)
331     FCFuncElement("IsGenericMethodDefinition", RuntimeMethodHandle::IsGenericMethodDefinition)
332     FCFuncElement("GetGenericParameterCount", RuntimeMethodHandle::GetGenericParameterCount)
333     FCFuncElement("IsTypicalMethodDefinition", RuntimeMethodHandle::IsTypicalMethodDefinition)
334     QCFuncElement("GetTypicalMethodDefinition", RuntimeMethodHandle::GetTypicalMethodDefinition)
335     QCFuncElement("StripMethodInstantiation", RuntimeMethodHandle::StripMethodInstantiation)
336     FCFuncElement("GetStubIfNeeded", RuntimeMethodHandle::GetStubIfNeeded)
337     FCFuncElement("GetMethodFromCanonical", RuntimeMethodHandle::GetMethodFromCanonical)
338     FCFuncElement("IsDynamicMethod", RuntimeMethodHandle::IsDynamicMethod)
339     FCFuncElement("GetMethodBody", RuntimeMethodHandle::GetMethodBody)    
340     QCFuncElement("IsCAVisibleFromDecoratedType", RuntimeMethodHandle::IsCAVisibleFromDecoratedType)
341     FCFuncElement("IsConstructor", RuntimeMethodHandle::IsConstructor)    
342     QCFuncElement("Destroy", RuntimeMethodHandle::Destroy)
343     FCFuncElement("GetResolver", RuntimeMethodHandle::GetResolver)
344     FCFuncElement("GetLoaderAllocator", RuntimeMethodHandle::GetLoaderAllocator)
345 FCFuncEnd()
346
347 FCFuncStart(gCOMDefaultBinderFuncs)
348     FCFuncElement("CanConvertPrimitive", ReflectionBinder::DBCanConvertPrimitive)
349     FCFuncElement("CanConvertPrimitiveObjectToType",  ReflectionBinder::DBCanConvertObjectPrimitive)
350 FCFuncEnd()
351
352
353 FCFuncStart(gCOMFieldHandleNewFuncs)
354     FCFuncElement("GetValue", RuntimeFieldHandle::GetValue)
355     FCFuncElement("SetValue", RuntimeFieldHandle::SetValue)
356     FCFuncElement("GetValueDirect", RuntimeFieldHandle::GetValueDirect)
357     FCFuncElement("SetValueDirect", RuntimeFieldHandle::SetValueDirect)
358     FCFuncElement("GetName", RuntimeFieldHandle::GetName)
359     FCFuncElement("_GetUtf8Name", RuntimeFieldHandle::GetUtf8Name)
360     FCFuncElement("MatchesNameHash", RuntimeFieldHandle::MatchesNameHash)
361     FCFuncElement("GetAttributes", RuntimeFieldHandle::GetAttributes)
362     FCFuncElement("GetApproxDeclaringType", RuntimeFieldHandle::GetApproxDeclaringType)
363     FCFuncElement("GetToken", RuntimeFieldHandle::GetToken)
364     FCFuncElement("GetStaticFieldForGenericType", RuntimeFieldHandle::GetStaticFieldForGenericType)
365     FCFuncElement("AcquiresContextFromThis", RuntimeFieldHandle::AcquiresContextFromThis)
366 FCFuncEnd()
367
368
369 FCFuncStart(gCOMModuleFuncs)
370     QCFuncElement("GetType", COMModule::GetType)
371     QCFuncElement("GetScopeName", COMModule::GetScopeName)
372     FCFuncElement("GetTypes", COMModule::GetTypes)
373     QCFuncElement("GetFullyQualifiedName", COMModule::GetFullyQualifiedName)
374     QCFuncElement("nIsTransientInternal", COMModule::IsTransient)
375     FCFuncElement("IsResource", COMModule::IsResource)    
376 FCFuncEnd()
377
378 FCFuncStart(gCOMModuleBuilderFuncs)
379     FCFuncElement("nCreateISymWriterForDynamicModule", COMModule::nCreateISymWriterForDynamicModule)
380     QCFuncElement("GetStringConstant", COMModule::GetStringConstant)
381     QCFuncElement("GetTypeRef", COMModule::GetTypeRef)
382     QCFuncElement("GetTokenFromTypeSpec", COMModule::GetTokenFromTypeSpec)
383     QCFuncElement("GetMemberRef", COMModule::GetMemberRef)
384     QCFuncElement("GetMemberRefOfMethodInfo", COMModule::GetMemberRefOfMethodInfo)
385     QCFuncElement("GetMemberRefOfFieldInfo", COMModule::GetMemberRefOfFieldInfo)
386     QCFuncElement("GetMemberRefFromSignature", COMModule::GetMemberRefFromSignature)
387     QCFuncElement("GetArrayMethodToken", COMModule::GetArrayMethodToken)
388     QCFuncElement("SetFieldRVAContent", COMModule::SetFieldRVAContent)
389 FCFuncEnd()
390
391 FCFuncStart(gCOMModuleHandleFuncs)
392     FCFuncElement("GetToken", ModuleHandle::GetToken)
393     QCFuncElement("GetModuleType", ModuleHandle::GetModuleType)
394     FCFuncElement("GetDynamicMethod", ModuleHandle::GetDynamicMethod)
395     FCFuncElement("_GetMetadataImport", ModuleHandle::GetMetadataImport)
396     QCFuncElement("ResolveType", ModuleHandle::ResolveType)
397     QCFuncElement("ResolveMethod", ModuleHandle::ResolveMethod)
398     QCFuncElement("_ContainsPropertyMatchingHash", ModuleHandle::ContainsPropertyMatchingHash)
399     QCFuncElement("ResolveField", ModuleHandle::ResolveField)
400     QCFuncElement("GetPEKind", ModuleHandle::GetPEKind)
401     FCFuncElement("GetMDStreamVersion", ModuleHandle::GetMDStreamVersion)
402 FCFuncEnd()
403
404 FCFuncStart(gCustomAttributeEncodedArgument)
405     FCFuncElement("ParseAttributeArguments", Attribute::ParseAttributeArguments)
406 FCFuncEnd()
407
408 FCFuncStart(gCOMCustomAttributeFuncs)
409     FCFuncElement("_ParseAttributeUsageAttribute", COMCustomAttribute::ParseAttributeUsageAttribute)
410     FCFuncElement("_CreateCaObject", COMCustomAttribute::CreateCaObject)
411     FCFuncElement("_GetPropertyOrFieldData",  COMCustomAttribute::GetPropertyOrFieldData)
412 FCFuncEnd()
413
414 FCFuncStart(gCOMClassWriter)
415     QCFuncElement("DefineGenericParam", COMDynamicWrite::DefineGenericParam)
416     QCFuncElement("DefineType", COMDynamicWrite::DefineType)
417     QCFuncElement("SetParentType", COMDynamicWrite::SetParentType)
418     QCFuncElement("AddInterfaceImpl", COMDynamicWrite::AddInterfaceImpl)
419     QCFuncElement("DefineMethod", COMDynamicWrite::DefineMethod)
420     QCFuncElement("DefineMethodSpec", COMDynamicWrite::DefineMethodSpec)
421     QCFuncElement("SetMethodIL", COMDynamicWrite::SetMethodIL)
422     QCFuncElement("TermCreateClass", COMDynamicWrite::TermCreateClass)
423     QCFuncElement("DefineField", COMDynamicWrite::DefineField)
424     QCFuncElement("DefineProperty", COMDynamicWrite::DefineProperty)
425     QCFuncElement("DefineEvent", COMDynamicWrite::DefineEvent)
426     QCFuncElement("DefineMethodSemantics", COMDynamicWrite::DefineMethodSemantics)
427     QCFuncElement("SetMethodImpl", COMDynamicWrite::SetMethodImpl)
428     QCFuncElement("DefineMethodImpl", COMDynamicWrite::DefineMethodImpl)
429     QCFuncElement("GetTokenFromSig",  COMDynamicWrite::GetTokenFromSig)
430     QCFuncElement("SetFieldLayoutOffset", COMDynamicWrite::SetFieldLayoutOffset)
431     QCFuncElement("SetClassLayout", COMDynamicWrite::SetClassLayout)
432     QCFuncElement("SetParamInfo", COMDynamicWrite::SetParamInfo)
433     QCFuncElement("SetPInvokeData", COMDynamicWrite::SetPInvokeData)
434     QCFuncElement("SetConstantValue", COMDynamicWrite::SetConstantValue)
435     QCFuncElement("DefineCustomAttribute", COMDynamicWrite::DefineCustomAttribute)
436 FCFuncEnd()
437
438 FCFuncStart(gCompatibilitySwitchFuncs)
439     FCFuncElement("GetValueInternalCall", CompatibilitySwitch::GetValue)
440 FCFuncEnd()
441
442 FCFuncStart(gAppDomainFuncs)
443     FCFuncElement("nSetupFriendlyName", AppDomainNative::SetupFriendlyName)
444     FCFuncElement("GetId", AppDomainNative::GetId)
445     QCFuncElement("nSetupBindingPaths", AppDomainNative::SetupBindingPaths)
446     QCFuncElement("nSetNativeDllSearchDirectories", AppDomainNative::SetNativeDllSearchDirectories)
447     FCFuncElement("PublishAnonymouslyHostedDynamicMethodsAssembly", AppDomainNative::PublishAnonymouslyHostedDynamicMethodsAssembly)
448 #ifdef FEATURE_APPDOMAIN_RESOURCE_MONITORING
449     FCFuncElement("nEnableMonitoring", AppDomainNative::EnableMonitoring)
450     FCFuncElement("nMonitoringIsEnabled", AppDomainNative::MonitoringIsEnabled)
451     FCFuncElement("nGetTotalProcessorTime", AppDomainNative::GetTotalProcessorTime)
452     FCFuncElement("nGetTotalAllocatedMemorySize", AppDomainNative::GetTotalAllocatedMemorySize)
453     FCFuncElement("nGetLastSurvivedMemorySize", AppDomainNative::GetLastSurvivedMemorySize)
454     FCFuncElement("nGetLastSurvivedProcessMemorySize", AppDomainNative::GetLastSurvivedProcessMemorySize)
455
456 #endif //FEATURE_APPDOMAIN_RESOURCE_MONITORING
457 FCFuncEnd()
458
459 #ifdef FEATURE_APPX
460 FCFuncStart(gApplicationModelFuncs)
461     QCFuncElement("IsAppXProcess", AppDomainNative::IsAppXProcess)
462 FCFuncEnd()
463 #endif
464
465 FCFuncStart(gMdUtf8String)
466     FCFuncElement("EqualsCaseSensitive", MdUtf8String::EqualsCaseSensitive)
467     QCFuncElement("EqualsCaseInsensitive", MdUtf8String::EqualsCaseInsensitive)
468     QCFuncElement("HashCaseInsensitive", MdUtf8String::HashCaseInsensitive)
469 FCFuncEnd()
470
471 FCFuncStart(gTypeNameBuilder)
472     QCFuncElement("CreateTypeNameBuilder", TypeNameBuilder::_CreateTypeNameBuilder)
473     QCFuncElement("ReleaseTypeNameBuilder", TypeNameBuilder::_ReleaseTypeNameBuilder)
474     QCFuncElement("OpenGenericArguments", TypeNameBuilder::_OpenGenericArguments)
475     QCFuncElement("CloseGenericArguments", TypeNameBuilder::_CloseGenericArguments)
476     QCFuncElement("OpenGenericArgument", TypeNameBuilder::_OpenGenericArgument)
477     QCFuncElement("CloseGenericArgument", TypeNameBuilder::_CloseGenericArgument)
478     QCFuncElement("AddName", TypeNameBuilder::_AddName)
479     QCFuncElement("AddPointer", TypeNameBuilder::_AddPointer)
480     QCFuncElement("AddByRef", TypeNameBuilder::_AddByRef)
481     QCFuncElement("AddSzArray", TypeNameBuilder::_AddSzArray)
482     QCFuncElement("AddArray", TypeNameBuilder::_AddArray)
483     QCFuncElement("AddAssemblySpec", TypeNameBuilder::_AddAssemblySpec)
484     QCFuncElement("ToString", TypeNameBuilder::_ToString)
485     QCFuncElement("Clear", TypeNameBuilder::_Clear)
486 FCFuncEnd()
487
488
489 FCFuncStart(gSafeTypeNameParserHandle)
490     QCFuncElement("_ReleaseTypeNameParser", TypeName::QReleaseTypeNameParser)
491 FCFuncEnd()
492
493 FCFuncStart(gTypeNameParser)
494     QCFuncElement("_CreateTypeNameParser",  TypeName::QCreateTypeNameParser)
495     QCFuncElement("_GetNames",              TypeName::QGetNames)
496     QCFuncElement("_GetTypeArguments",      TypeName::QGetTypeArguments)
497     QCFuncElement("_GetModifiers",          TypeName::QGetModifiers)
498     QCFuncElement("_GetAssemblyName",       TypeName::QGetAssemblyName)
499 FCFuncEnd()
500
501 FCFuncStart(gManifestBasedResourceGrovelerFuncs)
502     QCFuncElement("GetNeutralResourcesLanguageAttribute", AssemblyNative::GetNeutralResourcesLanguageAttribute)
503 FCFuncEnd()
504
505 FCFuncStart(gRuntimeAssemblyFuncs)
506     QCFuncElement("GetFullName", AssemblyNative::GetFullName)
507     QCFuncElement("GetLocation", AssemblyNative::GetLocation)
508     QCFuncElement("GetResource", AssemblyNative::GetResource)
509     QCFuncElement("GetCodeBase", AssemblyNative::GetCodeBase)
510     QCFuncElement("GetFlags", AssemblyNative::GetFlags)
511     QCFuncElement("GetHashAlgorithm", AssemblyNative::GetHashAlgorithm)
512     QCFuncElement("GetLocale", AssemblyNative::GetLocale)
513     QCFuncElement("GetPublicKey", AssemblyNative::GetPublicKey)
514     QCFuncElement("GetSimpleName", AssemblyNative::GetSimpleName)
515     QCFuncElement("GetVersion", AssemblyNative::GetVersion)
516     FCFuncElement("FCallIsDynamic", AssemblyNative::IsDynamic)
517     FCFuncElement("nLoad", AssemblyNative::Load)
518     QCFuncElement("GetType", AssemblyNative::GetType)
519     QCFuncElement("GetForwardedType", AssemblyNative::GetForwardedType)
520     QCFuncElement("GetManifestResourceInfo", AssemblyNative::GetManifestResourceInfo)
521     QCFuncElement("GetModules", AssemblyNative::GetModules)
522     QCFuncElement("GetModule", AssemblyNative::GetModule)
523     FCFuncElement("GetReferencedAssemblies", AssemblyNative::GetReferencedAssemblies)
524     QCFuncElement("GetExportedTypes", AssemblyNative::GetExportedTypes)
525     FCFuncElement("GetManifestResourceNames", AssemblyNative::GetManifestResourceNames)
526     QCFuncElement("GetEntryPoint", AssemblyNative::GetEntryPoint)
527     QCFuncElement("GetImageRuntimeVersion", AssemblyNative::GetImageRuntimeVersion)
528     FCFuncElement("GetManifestModule", AssemblyHandle::GetManifestModule)
529     FCFuncElement("GetToken", AssemblyHandle::GetToken)
530     QCFuncElement("GetIsCollectible", AssemblyNative::GetIsCollectible)
531 FCFuncEnd()
532
533 FCFuncStart(gAssemblyExtensionsFuncs)
534     QCFuncElement("InternalTryGetRawMetadata", AssemblyNative::InternalTryGetRawMetadata)
535 FCFuncEnd()
536
537 FCFuncStart(gAssemblyLoadContextFuncs)
538     QCFuncElement("InitializeAssemblyLoadContext", AssemblyNative::InitializeAssemblyLoadContext)
539     QCFuncElement("PrepareForAssemblyLoadContextRelease", AssemblyNative::PrepareForAssemblyLoadContextRelease)
540     QCFuncElement("LoadFromPath", AssemblyNative::LoadFromPath)
541     QCFuncElement("InternalLoadUnmanagedDllFromPath", AssemblyNative::InternalLoadUnmanagedDllFromPath)
542     QCFuncElement("LoadFromStream", AssemblyNative::LoadFromStream)
543     QCFuncElement("GetLoadContextForAssembly", AssemblyNative::GetLoadContextForAssembly)
544     FCFuncElement("GetLoadedAssemblies", AppDomainNative::GetLoadedAssemblies)
545 #if defined(FEATURE_MULTICOREJIT)
546     QCFuncElement("InternalSetProfileRoot", MultiCoreJITNative::InternalSetProfileRoot)
547     QCFuncElement("InternalStartProfile",   MultiCoreJITNative::InternalStartProfile)
548 #endif // defined(FEATURE_MULTICOREJIT)
549 FCFuncEnd()
550
551 FCFuncStart(gAssemblyNameFuncs)
552     FCFuncElement("nInit", AssemblyNameNative::Init)
553     FCFuncElement("nGetPublicKeyToken", AssemblyNameNative::GetPublicKeyToken)
554     FCFuncElement("nGetFileInformation", AssemblyNameNative::GetFileInformation)
555 FCFuncEnd()
556
557 FCFuncStart(gLoaderAllocatorFuncs)
558     QCFuncElement("Destroy", LoaderAllocator::Destroy)
559 FCFuncEnd()
560
561 FCFuncStart(gAssemblyFuncs)
562     QCFuncElement("GetEntryAssembly", AssemblyNative::GetEntryAssembly)
563     QCFuncElement("GetExecutingAssembly", AssemblyNative::GetExecutingAssembly)
564 FCFuncEnd()
565
566 FCFuncStart(gAssemblyBuilderFuncs)
567     FCFuncElement("nCreateDynamicAssembly", AppDomainNative::CreateDynamicAssembly)
568     FCFuncElement("GetInMemoryAssemblyModule", AssemblyNative::GetInMemoryAssemblyModule)
569 FCFuncEnd()
570
571 #ifdef MDA_SUPPORTED 
572 FCFuncStart(gMda)
573     FCFuncElement("MemberInfoCacheCreation", MdaManagedSupport::MemberInfoCacheCreation)
574     FCFuncElement("DateTimeInvalidLocalFormat", MdaManagedSupport::DateTimeInvalidLocalFormat)
575     FCFuncElement("IsStreamWriterBufferedDataLostEnabled", MdaManagedSupport::IsStreamWriterBufferedDataLostEnabled)
576     FCFuncElement("IsStreamWriterBufferedDataLostCaptureAllocatedCallStack", MdaManagedSupport::IsStreamWriterBufferedDataLostCaptureAllocatedCallStack)
577     FCFuncElement("ReportStreamWriterBufferedDataLost", MdaManagedSupport::ReportStreamWriterBufferedDataLost)
578     FCFuncElement("IsInvalidGCHandleCookieProbeEnabled", MdaManagedSupport::IsInvalidGCHandleCookieProbeEnabled)
579     FCFuncElement("FireInvalidGCHandleCookieProbe", MdaManagedSupport::FireInvalidGCHandleCookieProbe)
580     FCFuncElement("ReportErrorSafeHandleRelease", MdaManagedSupport::ReportErrorSafeHandleRelease)
581 FCFuncEnd()
582 #endif // MDA_SUPPORTED
583
584 FCFuncStart(gDelegateFuncs)
585     FCFuncElement("BindToMethodName", COMDelegate::BindToMethodName)
586     FCFuncElement("BindToMethodInfo", COMDelegate::BindToMethodInfo)
587     FCFuncElement("GetMulticastInvoke", COMDelegate::GetMulticastInvoke)
588     FCFuncElement("GetInvokeMethod", COMDelegate::GetInvokeMethod)
589     FCFuncElement("InternalAlloc", COMDelegate::InternalAlloc)
590     FCFuncElement("InternalAllocLike", COMDelegate::InternalAllocLike)
591     FCFuncElement("InternalEqualTypes", COMDelegate::InternalEqualTypes)
592     FCFuncElement("InternalEqualMethodHandles", COMDelegate::InternalEqualMethodHandles)
593     FCFuncElement("FindMethodHandle", COMDelegate::FindMethodHandle)
594     FCFuncElement("AdjustTarget", COMDelegate::AdjustTarget)
595     FCFuncElement("GetCallStub", COMDelegate::GetCallStub)
596     FCFuncElement("CompareUnmanagedFunctionPtrs", COMDelegate::CompareUnmanagedFunctionPtrs)
597
598     // The FCall mechanism knows how to wire multiple different constructor calls into a
599     // single entrypoint, without the following entry.  But we need this entry to satisfy
600     // frame creation within the body:
601     FCFuncElement("DelegateConstruct", COMDelegate::DelegateConstruct)
602 FCFuncEnd()
603
604 FCFuncStart(gMathFuncs)
605     FCIntrinsicSig("Abs", &gsig_SM_Dbl_RetDbl, COMDouble::Abs, CORINFO_INTRINSIC_Abs)
606     FCIntrinsicSig("Abs", &gsig_SM_Flt_RetFlt, COMSingle::Abs, CORINFO_INTRINSIC_Abs)
607     FCIntrinsic("Acos", COMDouble::Acos, CORINFO_INTRINSIC_Acos)
608     FCIntrinsic("Acosh", COMDouble::Acosh, CORINFO_INTRINSIC_Acosh)
609     FCIntrinsic("Asin", COMDouble::Asin, CORINFO_INTRINSIC_Asin)
610     FCIntrinsic("Asinh", COMDouble::Asinh, CORINFO_INTRINSIC_Asinh)
611     FCIntrinsic("Atan", COMDouble::Atan, CORINFO_INTRINSIC_Atan)
612     FCIntrinsic("Atanh", COMDouble::Atanh, CORINFO_INTRINSIC_Atanh)
613     FCIntrinsic("Atan2", COMDouble::Atan2, CORINFO_INTRINSIC_Atan2)
614     FCIntrinsic("Cbrt", COMDouble::Cbrt, CORINFO_INTRINSIC_Cbrt)
615     FCIntrinsic("Ceiling", COMDouble::Ceil, CORINFO_INTRINSIC_Ceiling)
616     FCIntrinsic("Cos", COMDouble::Cos, CORINFO_INTRINSIC_Cos)
617     FCIntrinsic("Cosh", COMDouble::Cosh, CORINFO_INTRINSIC_Cosh)
618     FCIntrinsic("Exp", COMDouble::Exp, CORINFO_INTRINSIC_Exp)
619     FCIntrinsic("Floor", COMDouble::Floor, CORINFO_INTRINSIC_Floor)
620     FCFuncElement("FMod", COMDouble::FMod)
621     FCFuncElement("FusedMultiplyAdd", COMDouble::FusedMultiplyAdd)
622     FCFuncElement("ILogB", COMDouble::ILogB)
623     FCFuncElement("Log", COMDouble::Log)
624     FCFuncElement("Log2", COMDouble::Log2)
625     FCIntrinsic("Log10", COMDouble::Log10, CORINFO_INTRINSIC_Log10)
626     FCFuncElement("ModF", COMDouble::ModF)
627     FCIntrinsic("Pow", COMDouble::Pow, CORINFO_INTRINSIC_Pow)
628     FCFuncElement("ScaleB", COMDouble::ScaleB)
629     FCIntrinsic("Sin", COMDouble::Sin, CORINFO_INTRINSIC_Sin)
630     FCIntrinsic("Sinh", COMDouble::Sinh, CORINFO_INTRINSIC_Sinh)
631     FCIntrinsic("Sqrt", COMDouble::Sqrt, CORINFO_INTRINSIC_Sqrt)
632     FCIntrinsic("Tan", COMDouble::Tan, CORINFO_INTRINSIC_Tan)
633     FCIntrinsic("Tanh", COMDouble::Tanh, CORINFO_INTRINSIC_Tanh)
634 FCFuncEnd()
635
636 FCFuncStart(gMathFFuncs)
637     FCIntrinsic("Acos", COMSingle::Acos, CORINFO_INTRINSIC_Acos)
638     FCIntrinsic("Acosh", COMSingle::Acosh, CORINFO_INTRINSIC_Acosh)
639     FCIntrinsic("Asin", COMSingle::Asin, CORINFO_INTRINSIC_Asin)
640     FCIntrinsic("Asinh", COMSingle::Asinh, CORINFO_INTRINSIC_Asinh)
641     FCIntrinsic("Atan", COMSingle::Atan, CORINFO_INTRINSIC_Atan)
642     FCIntrinsic("Atanh", COMSingle::Atanh, CORINFO_INTRINSIC_Atanh)
643     FCIntrinsic("Atan2", COMSingle::Atan2, CORINFO_INTRINSIC_Atan2)
644     FCIntrinsic("Cbrt", COMSingle::Cbrt, CORINFO_INTRINSIC_Cbrt)
645     FCIntrinsic("Ceiling", COMSingle::Ceil, CORINFO_INTRINSIC_Ceiling)
646     FCIntrinsic("Cos", COMSingle::Cos, CORINFO_INTRINSIC_Cos)
647     FCIntrinsic("Cosh", COMSingle::Cosh, CORINFO_INTRINSIC_Cosh)
648     FCIntrinsic("Exp", COMSingle::Exp, CORINFO_INTRINSIC_Exp)
649     FCIntrinsic("Floor", COMSingle::Floor, CORINFO_INTRINSIC_Floor)
650     FCFuncElement("FMod", COMSingle::FMod)
651     FCFuncElement("FusedMultiplyAdd", COMSingle::FusedMultiplyAdd)
652     FCFuncElement("ILogB", COMSingle::ILogB)
653     FCFuncElement("Log", COMSingle::Log)
654     FCFuncElement("Log2", COMSingle::Log2)
655     FCIntrinsic("Log10", COMSingle::Log10, CORINFO_INTRINSIC_Log10)
656     FCFuncElement("ModF", COMSingle::ModF)
657     FCIntrinsic("Pow", COMSingle::Pow, CORINFO_INTRINSIC_Pow)
658     FCFuncElement("ScaleB", COMSingle::ScaleB)
659     FCIntrinsic("Sin", COMSingle::Sin, CORINFO_INTRINSIC_Sin)
660     FCIntrinsic("Sinh", COMSingle::Sinh, CORINFO_INTRINSIC_Sinh)
661     FCIntrinsic("Sqrt", COMSingle::Sqrt, CORINFO_INTRINSIC_Sqrt)
662     FCIntrinsic("Tan", COMSingle::Tan, CORINFO_INTRINSIC_Tan)
663     FCIntrinsic("Tanh", COMSingle::Tanh, CORINFO_INTRINSIC_Tanh)
664 FCFuncEnd()
665
666 FCFuncStart(gRuntimeThreadFuncs)
667     FCFuncElement("get_IsAlive", ThreadNative::IsAlive)
668     FCFuncElement("IsBackgroundNative", ThreadNative::IsBackground)
669     FCFuncElement("SetBackgroundNative", ThreadNative::SetBackground)
670     FCFuncElement("get_IsThreadPoolThread", ThreadNative::IsThreadpoolThread)
671     FCFuncElement("GetPriorityNative", ThreadNative::GetPriority)
672     FCFuncElement("SetPriorityNative", ThreadNative::SetPriority)
673     QCFuncElement("GetCurrentOSThreadId", ThreadNative::GetCurrentOSThreadId)
674     FCFuncElement("GetThreadStateNative", ThreadNative::GetThreadState)
675 #ifdef FEATURE_COMINTEROP_APARTMENT_SUPPORT
676     FCFuncElement("GetApartmentStateNative", ThreadNative::GetApartmentState)
677     FCFuncElement("SetApartmentStateNative", ThreadNative::SetApartmentState)
678 #endif // FEATURE_COMINTEROP_APARTMENT_SUPPORT
679 #ifdef FEATURE_COMINTEROP
680     FCFuncElement("DisableComObjectEagerCleanup", ThreadNative::DisableComObjectEagerCleanup)
681 #endif // FEATURE_COMINTEROP
682     FCFuncElement("InterruptInternal", ThreadNative::Interrupt)
683     FCFuncElement("JoinInternal", ThreadNative::Join)
684     QCFuncElement("GetOptimalMaxSpinWaitsPerSpinIterationInternal", ThreadNative::GetOptimalMaxSpinWaitsPerSpinIteration)
685     FCFuncElement("GetCurrentProcessorNumber", ThreadNative::GetCurrentProcessorNumber)
686 FCFuncEnd()
687
688 FCFuncStart(gThreadFuncs)
689     FCDynamic("InternalGetCurrentThread", CORINFO_INTRINSIC_Illegal, ECall::InternalGetCurrentThread)
690     FCFuncElement("StartInternal", ThreadNative::Start)
691     QCFuncElement("nativeInitCultureAccessors", ThreadNative::nativeInitCultureAccessors)
692 #undef Sleep
693     FCFuncElement("SleepInternal", ThreadNative::Sleep)
694 #define Sleep(a) Dont_Use_Sleep(a)
695     FCFuncElement("SetStart", ThreadNative::SetStart)
696     FCFuncElement("GetDomainInternal", ThreadNative::GetDomain)
697     FCFuncElement("GetFastDomainInternal", ThreadNative::FastGetDomain)
698     QCFuncElement("InformThreadNameChange", ThreadNative::InformThreadNameChange)
699     FCFuncElement("SpinWaitInternal", ThreadNative::SpinWait)
700     QCFuncElement("YieldInternal", ThreadNative::YieldThread)
701     FCIntrinsic("GetCurrentThreadNative", ThreadNative::GetCurrentThread, CORINFO_INTRINSIC_GetCurrentManagedThread)
702     FCIntrinsic("get_ManagedThreadId", ThreadNative::GetManagedThreadId, CORINFO_INTRINSIC_GetManagedThreadId)
703     FCFuncElement("InternalFinalize", ThreadNative::Finalize)
704 #ifdef FEATURE_COMINTEROP_APARTMENT_SUPPORT
705     FCFuncElement("StartupSetApartmentStateInternal", ThreadNative::StartupSetApartmentState)
706 #endif // FEATURE_COMINTEROP_APARTMENT_SUPPORT
707 FCFuncEnd()
708
709 FCFuncStart(gThreadPoolFuncs)
710     FCFuncElement("PostQueuedCompletionStatus", ThreadPoolNative::CorPostQueuedCompletionStatus)
711     FCFuncElement("GetAvailableThreadsNative", ThreadPoolNative::CorGetAvailableThreads)
712     FCFuncElement("SetMinThreadsNative", ThreadPoolNative::CorSetMinThreads)
713     FCFuncElement("GetMinThreadsNative", ThreadPoolNative::CorGetMinThreads)
714     FCFuncElement("RegisterWaitForSingleObjectNative", ThreadPoolNative::CorRegisterWaitForSingleObject)
715     FCFuncElement("BindIOCompletionCallbackNative", ThreadPoolNative::CorBindIoCompletionCallback)
716     FCFuncElement("SetMaxThreadsNative", ThreadPoolNative::CorSetMaxThreads)
717     FCFuncElement("GetMaxThreadsNative", ThreadPoolNative::CorGetMaxThreads)
718     FCFuncElement("NotifyWorkItemComplete", ThreadPoolNative::NotifyRequestComplete)
719     FCFuncElement("NotifyWorkItemProgressNative", ThreadPoolNative::NotifyRequestProgress)
720     QCFuncElement("InitializeVMTp", ThreadPoolNative::InitializeVMTp)
721     FCFuncElement("ReportThreadStatus", ThreadPoolNative::ReportThreadStatus)   
722     QCFuncElement("RequestWorkerThread", ThreadPoolNative::RequestWorkerThread)
723 FCFuncEnd()
724
725 FCFuncStart(gTimerFuncs)
726     QCFuncElement("CreateAppDomainTimer", AppDomainTimerNative::CreateAppDomainTimer)
727     QCFuncElement("ChangeAppDomainTimer", AppDomainTimerNative::ChangeAppDomainTimer)
728     QCFuncElement("DeleteAppDomainTimer", AppDomainTimerNative::DeleteAppDomainTimer)
729 FCFuncEnd()
730
731
732 FCFuncStart(gRegisteredWaitHandleFuncs)
733     FCFuncElement("UnregisterWaitNative", ThreadPoolNative::CorUnregisterWait)
734     FCFuncElement("WaitHandleCleanupNative", ThreadPoolNative::CorWaitHandleCleanupNative)
735 FCFuncEnd()
736
737 FCFuncStart(gWaitHandleFuncs)
738     FCFuncElement("WaitOneNative", WaitHandleNative::CorWaitOneNative)
739     FCFuncElement("WaitMultiple", WaitHandleNative::CorWaitMultipleNative)
740     FCFuncElement("SignalAndWaitOne", WaitHandleNative::CorSignalAndWaitOneNative)
741 FCFuncEnd()
742
743 #ifdef FEATURE_COMINTEROP
744 FCFuncStart(gVariantFuncs)
745     FCFuncElement("SetFieldsObject", COMVariant::SetFieldsObject)
746     FCFuncElement("SetFieldsR4", COMVariant::SetFieldsR4)
747     FCFuncElement("SetFieldsR8", COMVariant::SetFieldsR8)
748     FCFuncElement("GetR4FromVar", COMVariant::GetR4FromVar)
749     FCFuncElement("GetR8FromVar", COMVariant::GetR8FromVar)
750     FCFuncElement("BoxEnum", COMVariant::BoxEnum)
751 FCFuncEnd()
752 #endif // FEATURE_COMINTEROP
753
754 #ifdef FEATURE_COMINTEROP
755 FCFuncStart(gOAVariantFuncs)
756     FCFuncElement("ChangeTypeEx", COMOAVariant::ChangeTypeEx)
757 FCFuncEnd()
758 #endif // FEATURE_COMINTEROP
759
760 FCFuncStart(gClrConfig)
761     QCFuncElement("GetConfigBoolValue", ClrConfigNative::GetConfigBoolValue)
762 FCFuncEnd()
763
764 #if !defined(FEATURE_COREFX_GLOBALIZATION)
765 FCFuncStart(gEncodingTableFuncs)
766     FCFuncElement("GetNumEncodingItems", COMNlsInfo::nativeGetNumEncodingItems)
767     FCFuncElement("GetEncodingData", COMNlsInfo::nativeGetEncodingTableDataPointer)
768     FCFuncElement("GetCodePageData", COMNlsInfo::nativeGetCodePageTableDataPointer)
769     FCFuncElement("nativeCompareOrdinalIgnoreCaseWC", COMString::FCCompareOrdinalIgnoreCaseWC)
770 FCFuncEnd()
771 #endif // !defined(FEATURE_COREFX_GLOBALIZATION)
772
773 FCFuncStart(gArrayFuncs)
774     FCFuncElement("get_Rank", ArrayNative::GetRank)
775     FCFuncElement("GetLowerBound", ArrayNative::GetLowerBound)
776     FCFuncElement("GetUpperBound", ArrayNative::GetUpperBound)
777     FCIntrinsicSig("GetLength", &gsig_IM_Int_RetInt, ArrayNative::GetLength, CORINFO_INTRINSIC_Array_GetDimLength)
778     FCFuncElement("get_Length", ArrayNative::GetLengthNoRank)
779     FCFuncElement("get_LongLength", ArrayNative::GetLongLengthNoRank)
780     FCFuncElement("GetDataPtrOffsetInternal", ArrayNative::GetDataPtrOffsetInternal)
781     FCFuncElement("Initialize", ArrayNative::Initialize)
782     FCFuncElement("Copy", ArrayNative::ArrayCopy)
783     FCFuncElement("GetRawArrayGeometry", ArrayNative::GetRawArrayGeometry)
784     FCFuncElement("InternalCreate", ArrayNative::CreateInstance)
785     FCFuncElement("InternalGetReference", ArrayNative::GetReference)
786     FCFuncElement("InternalSetValue", ArrayNative::SetValue)
787     FCFuncElement("TrySZIndexOf", ArrayHelper::TrySZIndexOf)
788     FCFuncElement("TrySZLastIndexOf", ArrayHelper::TrySZLastIndexOf)
789     FCFuncElement("TrySZBinarySearch", ArrayHelper::TrySZBinarySearch)
790     FCFuncElement("TrySZSort", ArrayHelper::TrySZSort)
791     FCFuncElement("TrySZReverse", ArrayHelper::TrySZReverse)
792 FCFuncEnd()
793
794 FCFuncStart(gBufferFuncs)
795     FCFuncElement("BlockCopy", Buffer::BlockCopy)
796     FCFuncElement("_GetByte", Buffer::GetByte)
797     FCFuncElement("_SetByte", Buffer::SetByte)
798     FCFuncElement("IsPrimitiveTypeArray", Buffer::IsPrimitiveTypeArray)
799     FCFuncElement("_ByteLength", Buffer::ByteLength)
800 #ifdef _TARGET_ARM_
801     FCFuncElement("Memcpy", FCallMemcpy)
802 #endif
803     QCFuncElement("__Memmove", Buffer::MemMove)
804 FCFuncEnd()
805
806 FCFuncStart(gGCInterfaceFuncs)
807     FCFuncElement("GetGenerationWR", GCInterface::GetGenerationWR)
808     FCFuncElement("_RegisterForFullGCNotification", GCInterface::RegisterForFullGCNotification)
809     FCFuncElement("_CancelFullGCNotification", GCInterface::CancelFullGCNotification)
810     FCFuncElement("_WaitForFullGCApproach", GCInterface::WaitForFullGCApproach)
811     FCFuncElement("_WaitForFullGCComplete", GCInterface::WaitForFullGCComplete)
812     FCFuncElement("_CollectionCount", GCInterface::CollectionCount)
813     FCFuncElement("GetMemoryInfo", GCInterface::GetMemoryInfo)
814     FCFuncElement("GetGCLatencyMode", GCInterface::GetGcLatencyMode)
815     FCFuncElement("SetGCLatencyMode", GCInterface::SetGcLatencyMode)
816     FCFuncElement("GetLOHCompactionMode", GCInterface::GetLOHCompactionMode)
817     FCFuncElement("SetLOHCompactionMode", GCInterface::SetLOHCompactionMode)
818     QCFuncElement("_StartNoGCRegion", GCInterface::StartNoGCRegion)
819     QCFuncElement("_EndNoGCRegion", GCInterface::EndNoGCRegion)
820     FCFuncElement("IsServerGC", SystemNative::IsServerGC)
821     QCFuncElement("_AddMemoryPressure", GCInterface::_AddMemoryPressure)
822     QCFuncElement("_RemoveMemoryPressure", GCInterface::_RemoveMemoryPressure)
823     FCFuncElement("GetGeneration", GCInterface::GetGeneration)
824     QCFuncElement("GetTotalMemory", GCInterface::GetTotalMemory)
825     QCFuncElement("_Collect", GCInterface::Collect)
826     FCFuncElement("GetMaxGeneration", GCInterface::GetMaxGeneration)
827     QCFuncElement("_WaitForPendingFinalizers", GCInterface::WaitForPendingFinalizers)
828
829     FCFuncElement("_SuppressFinalize", GCInterface::SuppressFinalize)
830     FCFuncElement("_ReRegisterForFinalize", GCInterface::ReRegisterForFinalize)
831     
832     FCFuncElement("_GetAllocatedBytesForCurrentThread", GCInterface::GetAllocatedBytesForCurrentThread)
833 FCFuncEnd()
834
835 FCFuncStart(gMemoryFailPointFuncs)
836     FCFuncElement("GetMemorySettings", COMMemoryFailPoint::GetMemorySettings)
837 FCFuncEnd()
838
839 FCFuncStart(gInteropMarshalFuncs)
840     FCFuncElement("GetLastWin32Error", MarshalNative::GetLastWin32Error)
841     FCFuncElement("SetLastWin32Error", MarshalNative::SetLastWin32Error)
842     FCFuncElement("SizeOfHelper", MarshalNative::SizeOfClass)
843     FCFuncElement("GetSystemMaxDBCSCharSize", MarshalNative::GetSystemMaxDBCSCharSize)
844     FCFuncElement("PtrToStructureHelper", MarshalNative::PtrToStructureHelper)
845     FCFuncElement("DestroyStructure", MarshalNative::DestroyStructure)
846     FCFuncElement("UnsafeAddrOfPinnedArrayElement", MarshalNative::FCUnsafeAddrOfPinnedArrayElement)
847     FCFuncElement("GetExceptionCode", ExceptionNative::GetExceptionCode)
848     FCFuncElement("GetExceptionPointers", ExceptionNative::GetExceptionPointers)
849     QCFuncElement("GetHINSTANCE", COMModule::GetHINSTANCE)
850
851     FCFuncElement("OffsetOfHelper", MarshalNative::OffsetOfHelper)
852
853     QCFuncElement("InternalPrelink", MarshalNative::Prelink)
854     FCFuncElement("CopyToNative", MarshalNative::CopyToNative)
855     FCFuncElement("CopyToManaged", MarshalNative::CopyToManaged)
856     FCFuncElement("StructureToPtr", MarshalNative::StructureToPtr)
857     FCFuncElement("ThrowExceptionForHRInternal", MarshalNative::ThrowExceptionForHR)
858     FCFuncElement("GetExceptionForHRInternal", MarshalNative::GetExceptionForHR)
859     FCFuncElement("GetDelegateForFunctionPointerInternal", MarshalNative::GetDelegateForFunctionPointerInternal)
860     FCFuncElement("GetFunctionPointerForDelegateInternal", MarshalNative::GetFunctionPointerForDelegateInternal)
861
862     QCFuncElement("LoadLibraryFromPath", MarshalNative::LoadLibraryFromPath)
863     QCFuncElement("LoadLibraryByName", MarshalNative::LoadLibraryByName)
864     QCFuncElement("FreeNativeLibrary", MarshalNative::FreeNativeLibrary)
865     QCFuncElement("GetNativeLibraryExport", MarshalNative::GetNativeLibraryExport)
866
867 #ifdef FEATURE_COMINTEROP
868     FCFuncElement("GetHRForException", MarshalNative::GetHRForException)
869     FCFuncElement("GetHRForException_WinRT", MarshalNative::GetHRForException_WinRT)
870     FCFuncElement("GetRawIUnknownForComObjectNoAddRef", MarshalNative::GetRawIUnknownForComObjectNoAddRef)
871     FCFuncElement("IsComObject", MarshalNative::IsComObject)
872     FCFuncElement("GetObjectForIUnknown", MarshalNative::GetObjectForIUnknown)
873     FCFuncElement("GetUniqueObjectForIUnknown", MarshalNative::GetUniqueObjectForIUnknown)
874     FCFuncElement("AddRef", MarshalNative::AddRef)
875     FCFuncElement("GetNativeVariantForObject", MarshalNative::GetNativeVariantForObject)
876     FCFuncElement("GetObjectForNativeVariant", MarshalNative::GetObjectForNativeVariant)
877     FCFuncElement("InternalFinalReleaseComObject", MarshalNative::FinalReleaseComObject)
878     FCFuncElement("IsTypeVisibleFromCom", MarshalNative::IsTypeVisibleFromCom)
879     FCFuncElement("QueryInterface", MarshalNative::QueryInterface)
880     FCFuncElement("CreateAggregatedObject", MarshalNative::CreateAggregatedObject)
881     FCFuncElement("AreComObjectsAvailableForCleanup", MarshalNative::AreComObjectsAvailableForCleanup)
882     FCFuncElement("InternalCreateWrapperOfType", MarshalNative::InternalCreateWrapperOfType)
883     FCFuncElement("GetObjectsForNativeVariants", MarshalNative::GetObjectsForNativeVariants)
884     FCFuncElement("GetStartComSlot", MarshalNative::GetStartComSlot)
885     FCFuncElement("GetEndComSlot", MarshalNative::GetEndComSlot)
886     
887     FCFuncElement("InitializeManagedWinRTFactoryObject", MarshalNative::InitializeManagedWinRTFactoryObject)
888
889     FCFuncElement("GetNativeActivationFactory", MarshalNative::GetNativeActivationFactory)
890     FCFuncElement("GetIUnknownForObjectNative", MarshalNative::GetIUnknownForObjectNative)
891     FCFuncElement("GetComInterfaceForObjectNative", MarshalNative::GetComInterfaceForObjectNative)
892     FCFuncElement("InternalReleaseComObject", MarshalNative::ReleaseComObject)
893     FCFuncElement("Release", MarshalNative::Release)
894     FCFuncElement("InitializeWrapperForWinRT", MarshalNative::InitializeWrapperForWinRT)
895     FCFuncElement("GetTypedObjectForIUnknown", MarshalNative::GetTypedObjectForIUnknown)
896     FCFuncElement("ChangeWrapperHandleStrength", MarshalNative::ChangeWrapperHandleStrength)
897     FCFuncElement("CleanupUnusedObjectsInCurrentContext", MarshalNative::CleanupUnusedObjectsInCurrentContext)
898 #endif // FEATURE_COMINTEROP
899 FCFuncEnd()
900
901 FCFuncStart(gArrayWithOffsetFuncs)
902     FCFuncElement("CalculateCount", MarshalNative::CalculateCount)
903 FCFuncEnd()
904
905 #ifdef FEATURE_COMINTEROP
906
907
908
909
910 #ifdef FEATURE_COMINTEROP_MANAGED_ACTIVATION
911 FCFuncStart(gRegistrationFuncs)
912     FCFuncElement("RegisterTypeForComClientsNative", RegisterTypeForComClientsNative)
913     FCFuncElement("RegisterTypeForComClientsExNative", RegisterTypeForComClientsExNative)
914 FCFuncEnd()
915 #endif // FEATURE_COMINTEROP_MANAGED_ACTIVATION
916
917 #endif // FEATURE_COMINTEROP
918
919 FCFuncStart(gTypeLoadExceptionFuncs)
920     QCFuncElement("GetTypeLoadExceptionMessage", GetTypeLoadExceptionMessage)
921 FCFuncEnd()
922
923 FCFuncStart(gFileLoadExceptionFuncs)
924     QCFuncElement("GetFileLoadExceptionMessage", GetFileLoadExceptionMessage)
925     QCFuncElement("GetMessageForHR", FileLoadException_GetMessageForHR)
926 FCFuncEnd()
927
928 FCFuncStart(gMissingMemberExceptionFuncs)
929     FCFuncElement("FormatSignature", MissingMemberException_FormatSignature)
930 FCFuncEnd()
931
932 FCFuncStart(gInterlockedFuncs)
933     FCIntrinsicSig("Exchange", &gsig_SM_RefInt_Int_RetInt, COMInterlocked::Exchange, CORINFO_INTRINSIC_InterlockedXchg32)
934     FCIntrinsicSig("Exchange", &gsig_SM_RefLong_Long_RetLong, COMInterlocked::Exchange64, CORINFO_INTRINSIC_InterlockedXchg64)    
935     FCFuncElementSig("Exchange", &gsig_SM_RefDbl_Dbl_RetDbl, COMInterlocked::ExchangeDouble)
936     FCFuncElementSig("Exchange", &gsig_SM_RefFlt_Flt_RetFlt, COMInterlocked::ExchangeFloat)
937     FCFuncElementSig("Exchange", &gsig_SM_RefObj_Obj_RetObj, COMInterlocked::ExchangeObject)
938     FCFuncElementSig("Exchange", &gsig_SM_RefIntPtr_IntPtr_RetIntPtr, COMInterlocked::ExchangePointer)
939     FCIntrinsicSig("CompareExchange", &gsig_SM_RefInt_Int_Int_RetInt, COMInterlocked::CompareExchange, CORINFO_INTRINSIC_InterlockedCmpXchg32)
940     FCIntrinsicSig("CompareExchange", &gsig_SM_RefLong_Long_Long_RetLong, COMInterlocked::CompareExchange64, CORINFO_INTRINSIC_InterlockedCmpXchg64)
941     FCFuncElementSig("CompareExchange", &gsig_SM_RefDbl_Dbl_Dbl_RetDbl, COMInterlocked::CompareExchangeDouble)
942     FCFuncElementSig("CompareExchange", &gsig_SM_RefFlt_Flt_Flt_RetFlt, COMInterlocked::CompareExchangeFloat)
943     FCFuncElementSig("CompareExchange", &gsig_SM_RefObj_Obj_Obj_RetObj, COMInterlocked::CompareExchangeObject)
944     FCFuncElementSig("CompareExchange", &gsig_SM_RefInt_Int_Int_RefBool_RetInt, COMInterlocked::CompareExchangeReliableResult)
945     FCFuncElementSig("CompareExchange", &gsig_SM_RefIntPtr_IntPtr_IntPtr_RetIntPtr, COMInterlocked::CompareExchangePointer)
946     FCIntrinsicSig("ExchangeAdd", &gsig_SM_RefInt_Int_RetInt, COMInterlocked::ExchangeAdd32, CORINFO_INTRINSIC_InterlockedXAdd32)
947     FCIntrinsicSig("ExchangeAdd", &gsig_SM_RefLong_Long_RetLong, COMInterlocked::ExchangeAdd64, CORINFO_INTRINSIC_InterlockedXAdd64)
948
949     FCIntrinsic("MemoryBarrier", COMInterlocked::FCMemoryBarrier, CORINFO_INTRINSIC_MemoryBarrier)
950     QCFuncElement("_MemoryBarrierProcessWide", COMInterlocked::MemoryBarrierProcessWide)
951 FCFuncEnd()
952
953 FCFuncStart(gVarArgFuncs)
954     FCFuncElementSig(COR_CTOR_METHOD_NAME, &gsig_IM_IntPtr_PtrVoid_RetVoid, VarArgsNative::Init2)
955     FCFuncElementSig(COR_CTOR_METHOD_NAME, &gsig_IM_IntPtr_RetVoid, VarArgsNative::Init)
956     FCFuncElement("GetRemainingCount", VarArgsNative::GetRemainingCount)
957     FCFuncElement("_GetNextArgType", VarArgsNative::GetNextArgType)
958     FCFuncElement("FCallGetNextArg", VarArgsNative::DoGetNextArg)
959     FCFuncElement("InternalGetNextArg", VarArgsNative::GetNextArg2)
960 FCFuncEnd()
961
962 FCFuncStart(gMonitorFuncs)
963     FCFuncElement("Enter", JIT_MonEnter)
964     FCFuncElement("ReliableEnter", JIT_MonReliableEnter)
965     FCFuncElement("ReliableEnterTimeout", JIT_MonTryEnter)
966     FCFuncElement("Exit", JIT_MonExit)
967     FCFuncElement("ObjWait", ObjectNative::WaitTimeout)
968     FCFuncElement("ObjPulse", ObjectNative::Pulse)
969     FCFuncElement("ObjPulseAll", ObjectNative::PulseAll)
970     FCFuncElement("IsEnteredNative", ObjectNative::IsLockHeld)
971 FCFuncEnd()
972
973 FCFuncStart(gOverlappedFuncs)
974     FCFuncElement("AllocateNativeOverlapped", AllocateNativeOverlapped)
975     FCFuncElement("FreeNativeOverlapped", FreeNativeOverlapped)
976     FCFuncElement("CheckVMForIOPacket", CheckVMForIOPacket)
977     FCFuncElement("GetOverlappedFromNative", GetOverlappedFromNative)
978 FCFuncEnd()
979
980 FCFuncStart(gCompilerFuncs)
981     FCFuncElement("GetObjectValue", ObjectNative::GetObjectValue)
982     FCIntrinsic("InitializeArray", ArrayNative::InitializeArray, CORINFO_INTRINSIC_InitializeArray)
983     FCFuncElement("_RunClassConstructor", ReflectionInvocation::RunClassConstructor)
984     FCFuncElement("_RunModuleConstructor", ReflectionInvocation::RunModuleConstructor)
985     QCFuncElement("_CompileMethod", ReflectionInvocation::CompileMethod)
986     FCFuncElement("_PrepareMethod", ReflectionInvocation::PrepareMethod)
987     FCFuncElement("PrepareDelegate", ReflectionInvocation::PrepareDelegate)
988     FCFuncElement("ExecuteCodeWithGuaranteedCleanup", ReflectionInvocation::ExecuteCodeWithGuaranteedCleanup)
989     FCFuncElement("GetHashCode", ObjectNative::GetHashCode)
990     FCFuncElement("Equals", ObjectNative::Equals)
991     FCFuncElement("EnsureSufficientExecutionStack", ReflectionInvocation::EnsureSufficientExecutionStack)
992     FCFuncElement("TryEnsureSufficientExecutionStack", ReflectionInvocation::TryEnsureSufficientExecutionStack)
993 FCFuncEnd()
994
995 FCFuncStart(gContextSynchronizationFuncs)
996     FCFuncElement("WaitHelperNative", SynchronizationContextNative::WaitHelper)
997 #ifdef FEATURE_APPX
998     QCFuncElement("GetWinRTDispatcherForCurrentThread", SynchronizationContextNative::GetWinRTDispatcherForCurrentThread)
999 #endif
1000 FCFuncEnd()
1001
1002 FCFuncStart(gDateMarshalerFuncs)
1003     FCFuncElement("ConvertToNative", StubHelpers::DateMarshaler__ConvertToNative)
1004     FCFuncElement("ConvertToManaged", StubHelpers::DateMarshaler__ConvertToManaged)
1005 FCFuncEnd()
1006
1007 FCFuncStart(gValueClassMarshalerFuncs)
1008     FCFuncElement("ConvertToNative", StubHelpers::ValueClassMarshaler__ConvertToNative)
1009     FCFuncElement("ConvertToManaged", StubHelpers::ValueClassMarshaler__ConvertToManaged)
1010     FCFuncElement("ClearNative", StubHelpers::ValueClassMarshaler__ClearNative)
1011 FCFuncEnd()
1012
1013 FCFuncStart(gMngdNativeArrayMarshalerFuncs)
1014     FCFuncElement("CreateMarshaler", MngdNativeArrayMarshaler::CreateMarshaler)
1015     FCFuncElement("ConvertSpaceToNative", MngdNativeArrayMarshaler::ConvertSpaceToNative)
1016     FCFuncElement("ConvertContentsToNative", MngdNativeArrayMarshaler::ConvertContentsToNative)
1017     FCFuncElement("ConvertSpaceToManaged", MngdNativeArrayMarshaler::ConvertSpaceToManaged)
1018     FCFuncElement("ConvertContentsToManaged", MngdNativeArrayMarshaler::ConvertContentsToManaged)
1019     FCFuncElement("ClearNative", MngdNativeArrayMarshaler::ClearNative)
1020     FCFuncElement("ClearNativeContents", MngdNativeArrayMarshaler::ClearNativeContents)
1021 FCFuncEnd()
1022
1023 #ifdef FEATURE_COMINTEROP
1024 FCFuncStart(gObjectMarshalerFuncs)
1025     FCFuncElement("ConvertToNative", StubHelpers::ObjectMarshaler__ConvertToNative)
1026     FCFuncElement("ConvertToManaged", StubHelpers::ObjectMarshaler__ConvertToManaged)
1027     FCFuncElement("ClearNative", StubHelpers::ObjectMarshaler__ClearNative)
1028 FCFuncEnd()
1029
1030 FCFuncStart(gInterfaceMarshalerFuncs)
1031     FCFuncElement("ConvertToNative", StubHelpers::InterfaceMarshaler__ConvertToNative)
1032     FCFuncElement("ConvertToManaged", StubHelpers::InterfaceMarshaler__ConvertToManaged)
1033     QCFuncElement("ClearNative", StubHelpers::InterfaceMarshaler__ClearNative)
1034     FCFuncElement("ConvertToManagedWithoutUnboxing", StubHelpers::InterfaceMarshaler__ConvertToManagedWithoutUnboxing)
1035 FCFuncEnd()
1036
1037 FCFuncStart(gUriMarshalerFuncs)
1038     FCFuncElement("GetRawUriFromNative", StubHelpers::UriMarshaler__GetRawUriFromNative)
1039     FCFuncElement("CreateNativeUriInstanceHelper", StubHelpers::UriMarshaler__CreateNativeUriInstance)
1040 FCFuncEnd()
1041
1042 FCFuncStart(gMngdSafeArrayMarshalerFuncs)
1043     FCFuncElement("CreateMarshaler", MngdSafeArrayMarshaler::CreateMarshaler)
1044     FCFuncElement("ConvertSpaceToNative", MngdSafeArrayMarshaler::ConvertSpaceToNative)
1045     FCFuncElement("ConvertContentsToNative", MngdSafeArrayMarshaler::ConvertContentsToNative)
1046     FCFuncElement("ConvertSpaceToManaged", MngdSafeArrayMarshaler::ConvertSpaceToManaged)
1047     FCFuncElement("ConvertContentsToManaged", MngdSafeArrayMarshaler::ConvertContentsToManaged)
1048     FCFuncElement("ClearNative", MngdSafeArrayMarshaler::ClearNative)
1049 FCFuncEnd()
1050
1051 FCFuncStart(gMngdHiddenLengthArrayMarshalerFuncs)
1052     FCFuncElement("CreateMarshaler", MngdHiddenLengthArrayMarshaler::CreateMarshaler)
1053     FCFuncElement("ConvertSpaceToNative", MngdHiddenLengthArrayMarshaler::ConvertSpaceToNative)
1054     FCFuncElement("ConvertContentsToNative", MngdHiddenLengthArrayMarshaler::ConvertContentsToNative)
1055     FCFuncElement("ConvertSpaceToManaged", MngdHiddenLengthArrayMarshaler::ConvertSpaceToManaged)
1056     FCFuncElement("ConvertContentsToManaged", MngdHiddenLengthArrayMarshaler::ConvertContentsToManaged)
1057     FCFuncElement("ClearNativeContents", MngdHiddenLengthArrayMarshaler::ClearNativeContents)
1058 FCFuncEnd()
1059     
1060 FCFuncStart(gWinRTTypeNameConverterFuncs)
1061     FCFuncElement("ConvertToWinRTTypeName", StubHelpers::WinRTTypeNameConverter__ConvertToWinRTTypeName)
1062     FCFuncElement("GetTypeFromWinRTTypeName", StubHelpers::WinRTTypeNameConverter__GetTypeFromWinRTTypeName)
1063 FCFuncEnd()
1064
1065 #endif // FEATURE_COMINTEROP
1066
1067 FCFuncStart(gMngdRefCustomMarshalerFuncs)
1068     FCFuncElement("CreateMarshaler", MngdRefCustomMarshaler::CreateMarshaler)
1069     FCFuncElement("ConvertContentsToNative", MngdRefCustomMarshaler::ConvertContentsToNative)
1070     FCFuncElement("ConvertContentsToManaged", MngdRefCustomMarshaler::ConvertContentsToManaged)
1071     FCFuncElement("ClearNative", MngdRefCustomMarshaler::ClearNative)
1072     FCFuncElement("ClearManaged", MngdRefCustomMarshaler::ClearManaged)
1073 FCFuncEnd()
1074
1075 FCFuncStart(gStubHelperFuncs)
1076     FCFuncElement("IsQCall", StubHelpers::IsQCall)
1077     FCFuncElement("InitDeclaringType", StubHelpers::InitDeclaringType)
1078     FCIntrinsic("GetNDirectTarget", StubHelpers::GetNDirectTarget, CORINFO_INTRINSIC_StubHelpers_GetNDirectTarget)
1079     FCFuncElement("GetDelegateTarget", StubHelpers::GetDelegateTarget)
1080     FCFuncElement("SetLastError", StubHelpers::SetLastError)
1081     FCFuncElement("ClearLastError", StubHelpers::ClearLastError)
1082     FCFuncElement("ThrowInteropParamException", StubHelpers::ThrowInteropParamException)
1083     FCFuncElement("InternalGetHRExceptionObject", StubHelpers::GetHRExceptionObject)
1084 #ifdef FEATURE_COMINTEROP
1085     FCFuncElement("InternalGetCOMHRExceptionObject", StubHelpers::GetCOMHRExceptionObject)
1086     FCFuncElement("GetCOMIPFromRCW", StubHelpers::GetCOMIPFromRCW)
1087     FCFuncElement("GetCOMIPFromRCW_WinRT", StubHelpers::GetCOMIPFromRCW_WinRT)
1088     FCFuncElement("GetCOMIPFromRCW_WinRTSharedGeneric", StubHelpers::GetCOMIPFromRCW_WinRTSharedGeneric)
1089     FCFuncElement("GetCOMIPFromRCW_WinRTDelegate", StubHelpers::GetCOMIPFromRCW_WinRTDelegate)
1090     FCFuncElement("ShouldCallWinRTInterface", StubHelpers::ShouldCallWinRTInterface)
1091     FCFuncElement("GetTargetForAmbiguousVariantCall", StubHelpers::GetTargetForAmbiguousVariantCall)
1092     FCFuncElement("StubRegisterRCW", StubHelpers::StubRegisterRCW)
1093     FCFuncElement("StubUnregisterRCW", StubHelpers::StubUnregisterRCW)
1094     FCFuncElement("GetDelegateInvokeMethod", StubHelpers::GetDelegateInvokeMethod)
1095     FCFuncElement("GetWinRTFactoryObject", StubHelpers::GetWinRTFactoryObject)
1096     FCFuncElement("GetWinRTFactoryReturnValue", StubHelpers::GetWinRTFactoryReturnValue)
1097     FCFuncElement("GetOuterInspectable", StubHelpers::GetOuterInspectable)
1098 #ifdef MDA_SUPPORTED
1099     FCFuncElement("TriggerExceptionSwallowedMDA", StubHelpers::TriggerExceptionSwallowedMDA)
1100 #endif
1101 #endif // FEATURE_COMINTEROP
1102 #ifdef MDA_SUPPORTED
1103     FCFuncElement("CheckCollectedDelegateMDA", StubHelpers::CheckCollectedDelegateMDA)
1104 #endif // MDA_SUPPORTED
1105 #ifdef PROFILING_SUPPORTED    
1106     FCFuncElement("ProfilerBeginTransitionCallback", StubHelpers::ProfilerBeginTransitionCallback)
1107     FCFuncElement("ProfilerEndTransitionCallback", StubHelpers::ProfilerEndTransitionCallback)
1108 #endif    
1109     FCFuncElement("CreateCustomMarshalerHelper", StubHelpers::CreateCustomMarshalerHelper)
1110     FCFuncElement("FmtClassUpdateNativeInternal", StubHelpers::FmtClassUpdateNativeInternal)
1111     FCFuncElement("FmtClassUpdateCLRInternal", StubHelpers::FmtClassUpdateCLRInternal)
1112     FCFuncElement("LayoutDestroyNativeInternal", StubHelpers::LayoutDestroyNativeInternal)
1113     FCFuncElement("AllocateInternal", StubHelpers::AllocateInternal)
1114     FCFuncElement("strlen", StubHelpers::AnsiStrlen)    
1115     FCFuncElement("MarshalToUnmanagedVaListInternal", StubHelpers::MarshalToUnmanagedVaListInternal)
1116     FCFuncElement("MarshalToManagedVaListInternal", StubHelpers::MarshalToManagedVaListInternal)
1117     FCFuncElement("CalcVaListSize", StubHelpers::CalcVaListSize)
1118     FCFuncElement("ValidateObject", StubHelpers::ValidateObject)
1119     FCFuncElement("ValidateByref", StubHelpers::ValidateByref)
1120     FCFuncElement("LogPinnedArgument", StubHelpers::LogPinnedArgument)
1121     FCIntrinsic("GetStubContext", StubHelpers::GetStubContext, CORINFO_INTRINSIC_StubHelpers_GetStubContext)
1122 #ifdef _TARGET_64BIT_
1123     FCIntrinsic("GetStubContextAddr", StubHelpers::GetStubContextAddr, CORINFO_INTRINSIC_StubHelpers_GetStubContextAddr)
1124 #endif // _TARGET_64BIT_
1125 #ifdef MDA_SUPPORTED
1126     FCFuncElement("TriggerGCForMDA", StubHelpers::TriggerGCForMDA)
1127 #endif // MDA_SUPPORTED
1128 #ifdef FEATURE_ARRAYSTUB_AS_IL
1129     FCFuncElement("ArrayTypeCheck", StubHelpers::ArrayTypeCheck)
1130 #endif //FEATURE_ARRAYSTUB_AS_IL
1131 #ifdef FEATURE_MULTICASTSTUB_AS_IL
1132     FCFuncElement("MulticastDebuggerTraceHelper", StubHelpers::MulticastDebuggerTraceHelper)
1133 #endif //FEATURE_MULTICASTSTUB_AS_IL
1134 FCFuncEnd()
1135
1136 FCFuncStart(gGCHandleFuncs)
1137     FCFuncElement("InternalAlloc", MarshalNative::GCHandleInternalAlloc)
1138     FCFuncElement("InternalFree", MarshalNative::GCHandleInternalFree)
1139     FCFuncElement("InternalGet", MarshalNative::GCHandleInternalGet)
1140     FCFuncElement("InternalSet", MarshalNative::GCHandleInternalSet)
1141     FCFuncElement("InternalCompareExchange", MarshalNative::GCHandleInternalCompareExchange)
1142     FCFuncElement("InternalAddrOfPinnedObject", MarshalNative::GCHandleInternalAddrOfPinnedObject)
1143 FCFuncEnd()
1144
1145
1146 FCFuncStart(gStreamFuncs)
1147     FCFuncElement("HasOverriddenBeginEndRead", StreamNative::HasOverriddenBeginEndRead)
1148     FCFuncElement("HasOverriddenBeginEndWrite", StreamNative::HasOverriddenBeginEndWrite)
1149 FCFuncEnd()
1150
1151
1152 #if defined(FEATURE_EVENTSOURCE_XPLAT)
1153 FCFuncStart(gEventLogger)
1154     QCFuncElement("IsEventSourceLoggingEnabled", XplatEventSourceLogger::IsEventSourceLoggingEnabled)
1155     QCFuncElement("LogEventSource", XplatEventSourceLogger::LogEventSource)
1156 FCFuncEnd()
1157 #endif // defined(FEATURE_EVENTSOURCE_XPLAT)
1158
1159 #ifdef FEATURE_PERFTRACING
1160 FCFuncStart(gEventPipeInternalFuncs)
1161     QCFuncElement("Enable", EventPipeInternal::Enable)
1162     QCFuncElement("Disable", EventPipeInternal::Disable)
1163     QCFuncElement("GetSessionInfo", EventPipeInternal::GetSessionInfo)
1164     QCFuncElement("CreateProvider", EventPipeInternal::CreateProvider)
1165     QCFuncElement("DefineEvent", EventPipeInternal::DefineEvent)
1166     QCFuncElement("DeleteProvider", EventPipeInternal::DeleteProvider)
1167     QCFuncElement("EventActivityIdControl", EventPipeInternal::EventActivityIdControl)
1168     QCFuncElement("GetProvider", EventPipeInternal::GetProvider)
1169     QCFuncElement("WriteEvent", EventPipeInternal::WriteEvent)
1170     QCFuncElement("WriteEventData", EventPipeInternal::WriteEventData)
1171     QCFuncElement("GetNextEvent", EventPipeInternal::GetNextEvent)
1172 FCFuncEnd()
1173 #endif // FEATURE_PERFTRACING
1174
1175 #ifdef FEATURE_COMINTEROP
1176 FCFuncStart(gRuntimeClassFuncs)
1177     FCFuncElement("GetRedirectedGetHashCodeMD", ComObject::GetRedirectedGetHashCodeMD)
1178     FCFuncElement("RedirectGetHashCode", ComObject::RedirectGetHashCode)
1179     FCFuncElement("GetRedirectedToStringMD", ComObject::GetRedirectedToStringMD)
1180     FCFuncElement("RedirectToString", ComObject::RedirectToString)
1181     FCFuncElement("GetRedirectedEqualsMD", ComObject::GetRedirectedEqualsMD)
1182     FCFuncElement("RedirectEquals", ComObject::RedirectEquals)
1183 FCFuncEnd()
1184 #endif // ifdef FEATURE_COMINTEROP
1185
1186 FCFuncStart(gRuntimeImportsFuncs)
1187     QCFuncElement("RhZeroMemory", MemoryNative::Clear)
1188     FCFuncElement("RhBulkMoveWithWriteBarrier", MemoryNative::BulkMoveWithWriteBarrier)
1189 FCFuncEnd()
1190
1191 FCFuncStart(gWeakReferenceFuncs)
1192     FCFuncElement("Create", WeakReferenceNative::Create)
1193     FCFuncElement("Finalize", WeakReferenceNative::Finalize)
1194     FCFuncElement("get_Target", WeakReferenceNative::GetTarget)
1195     FCFuncElement("set_Target", WeakReferenceNative::SetTarget)
1196     FCFuncElement("get_IsAlive", WeakReferenceNative::IsAlive)
1197     FCFuncElement("IsTrackResurrection", WeakReferenceNative::IsTrackResurrection)
1198 FCFuncEnd()
1199
1200 FCFuncStart(gWeakReferenceOfTFuncs)
1201     FCFuncElement("Create", WeakReferenceOfTNative::Create)
1202     FCFuncElement("Finalize", WeakReferenceOfTNative::Finalize)
1203     FCFuncElement("get_Target", WeakReferenceOfTNative::GetTarget)
1204     FCFuncElement("set_Target", WeakReferenceOfTNative::SetTarget)
1205     FCFuncElement("IsTrackResurrection", WeakReferenceOfTNative::IsTrackResurrection)
1206 FCFuncEnd()
1207
1208 #ifdef FEATURE_COMINTEROP
1209
1210 //
1211 // ECall helpers for the standard managed interfaces.
1212 //
1213
1214 #define MNGSTDITF_BEGIN_INTERFACE(FriendlyName, strMngItfName, strUCOMMngItfName, strCustomMarshalerName, strCustomMarshalerCookie, strManagedViewName, NativeItfIID, bCanCastOnNativeItfQI) \
1215 FCFuncStart(g##FriendlyName##Funcs)
1216
1217 #define MNGSTDITF_DEFINE_METH_IMPL(FriendlyName, FCallMethName, MethName, MethSig, FcallDecl) \
1218     FCUnreferenced FCFuncElementSig(#MethName, MethSig, FriendlyName::FCallMethName)
1219
1220 #define MNGSTDITF_END_INTERFACE(FriendlyName) \
1221 FCFuncEnd()
1222
1223 #include "mngstditflist.h"
1224
1225 #undef MNGSTDITF_BEGIN_INTERFACE
1226 #undef MNGSTDITF_DEFINE_METH_IMPL
1227 #undef MNGSTDITF_END_INTERFACE
1228
1229 #endif // FEATURE_COMINTEROP
1230
1231
1232 //
1233 //
1234 // Class definitions
1235 //
1236 //
1237
1238 // Note these have to remain sorted by name:namespace pair (Assert will wack you if you don't)
1239 // The sorting is case-sensitive
1240
1241 FCClassElement("AppDomain", "System", gAppDomainFuncs)
1242 #ifdef FEATURE_APPX
1243 FCClassElement("ApplicationModel", "System", gApplicationModelFuncs)
1244 #endif
1245 FCClassElement("ArgIterator", "System", gVarArgFuncs)
1246 FCClassElement("Array", "System", gArrayFuncs)
1247 FCClassElement("ArrayWithOffset", "System.Runtime.InteropServices", gArrayWithOffsetFuncs)
1248 FCClassElement("Assembly", "System.Reflection", gAssemblyFuncs)
1249 FCClassElement("AssemblyBuilder", "System.Reflection.Emit", gAssemblyBuilderFuncs)
1250
1251 FCClassElement("AssemblyExtensions", "System.Reflection.Metadata", gAssemblyExtensionsFuncs)
1252
1253 FCClassElement("AssemblyLoadContext", "System.Runtime.Loader", gAssemblyLoadContextFuncs)
1254
1255 FCClassElement("AssemblyName", "System.Reflection", gAssemblyNameFuncs)
1256 FCClassElement("Buffer", "System", gBufferFuncs)
1257 FCClassElement("CLRConfig", "System", gClrConfig)
1258 FCClassElement("CompatibilitySwitch", "System.Runtime.Versioning", gCompatibilitySwitchFuncs)
1259 FCClassElement("CriticalHandle", "System.Runtime.InteropServices", gCriticalHandleFuncs)
1260 FCClassElement("CustomAttribute", "System.Reflection", gCOMCustomAttributeFuncs)
1261 FCClassElement("CustomAttributeEncodedArgument", "System.Reflection", gCustomAttributeEncodedArgument)
1262 FCClassElement("DateMarshaler", "System.StubHelpers", gDateMarshalerFuncs)
1263 FCClassElement("DateTime", "System", gDateTimeFuncs)
1264 FCClassElement("Debugger", "System.Diagnostics", gDiagnosticsDebugger)
1265 FCClassElement("DefaultBinder", "System", gCOMDefaultBinderFuncs)
1266 FCClassElement("Delegate", "System", gDelegateFuncs)
1267 FCClassElement("DependentHandle", "System.Runtime.CompilerServices", gDependentHandleFuncs)
1268 #if !defined(FEATURE_COREFX_GLOBALIZATION)
1269 FCClassElement("EncodingTable", "System.Text", gEncodingTableFuncs)
1270 #endif // !defined(FEATURE_COREFX_GLOBALIZATION)
1271 FCClassElement("Enum", "System", gEnumFuncs)
1272 FCClassElement("Environment", "System", gEnvironmentFuncs)
1273 #if defined(FEATURE_PERFTRACING)
1274 FCClassElement("EventPipeInternal", "System.Diagnostics.Tracing", gEventPipeInternalFuncs)
1275 #endif // FEATURE_PERFTRACING
1276 FCClassElement("Exception", "System", gExceptionFuncs)
1277 FCClassElement("FileLoadException", "System.IO", gFileLoadExceptionFuncs)
1278 FCClassElement("FormatterServices", "System.Runtime.Serialization", gSerializationFuncs)
1279 FCClassElement("GC", "System", gGCInterfaceFuncs)
1280 FCClassElement("GCHandle", "System.Runtime.InteropServices", gGCHandleFuncs)
1281 #ifdef FEATURE_COMINTEROP
1282 FCClassElement("IEnumerable", "System.Collections", gStdMngIEnumerableFuncs)
1283 FCClassElement("IEnumerator", "System.Collections", gStdMngIEnumeratorFuncs)
1284 FCClassElement("IExpando", "System.Runtime.InteropServices.Expando", gStdMngIExpandoFuncs)
1285 FCClassElement("IReflect", "System.Reflection", gStdMngIReflectFuncs)
1286 FCClassElement("InterfaceMarshaler", "System.StubHelpers", gInterfaceMarshalerFuncs)
1287 #endif
1288 FCClassElement("Interlocked", "System.Threading", gInterlockedFuncs)
1289 FCClassElement("JitHelpers", "System.Runtime.CompilerServices", gJitHelpers)
1290 FCClassElement("LoaderAllocatorScout", "System.Reflection", gLoaderAllocatorFuncs)
1291 FCClassElement("ManifestBasedResourceGroveler", "System.Resources",  gManifestBasedResourceGrovelerFuncs)
1292 FCClassElement("Marshal", "System.Runtime.InteropServices", gInteropMarshalFuncs)
1293 FCClassElement("Math", "System", gMathFuncs)
1294 FCClassElement("MathF", "System", gMathFFuncs)
1295 #ifdef MDA_SUPPORTED 
1296 FCClassElement("Mda", "System", gMda)
1297 #endif
1298 FCClassElement("MdUtf8String", "System", gMdUtf8String)
1299 FCClassElement("MemoryFailPoint", "System.Runtime", gMemoryFailPointFuncs)
1300 FCClassElement("MetadataImport", "System.Reflection", gMetaDataImport)
1301 FCClassElement("MissingMemberException", "System",  gMissingMemberExceptionFuncs)
1302 #ifdef FEATURE_COMINTEROP
1303 FCClassElement("MngdHiddenLengthArrayMarshaler", "System.StubHelpers", gMngdHiddenLengthArrayMarshalerFuncs)
1304 #endif // FEATURE_COMINTEROP
1305 FCClassElement("MngdNativeArrayMarshaler", "System.StubHelpers", gMngdNativeArrayMarshalerFuncs)    
1306 FCClassElement("MngdRefCustomMarshaler", "System.StubHelpers", gMngdRefCustomMarshalerFuncs)    
1307 #ifdef FEATURE_COMINTEROP
1308 FCClassElement("MngdSafeArrayMarshaler", "System.StubHelpers", gMngdSafeArrayMarshalerFuncs)  
1309 #endif // FEATURE_COMINTEROP
1310 FCClassElement("ModuleBuilder", "System.Reflection.Emit", gCOMModuleBuilderFuncs)
1311 FCClassElement("ModuleHandle", "System", gCOMModuleHandleFuncs)
1312 FCClassElement("Monitor", "System.Threading", gMonitorFuncs)
1313 #ifdef FEATURE_COMINTEROP
1314 FCClassElement("OAVariantLib", "Microsoft.Win32", gOAVariantFuncs)
1315 #endif
1316 FCClassElement("Object", "System", gObjectFuncs)
1317 #ifdef FEATURE_COMINTEROP
1318 FCClassElement("ObjectMarshaler", "System.StubHelpers", gObjectMarshalerFuncs)
1319 #endif
1320 FCClassElement("OverlappedData", "System.Threading", gOverlappedFuncs)
1321
1322
1323 FCClassElement("PunkSafeHandle", "System.Reflection.Emit", gSymWrapperCodePunkSafeHandleFuncs)
1324 FCClassElement("RegisteredWaitHandleSafe", "System.Threading", gRegisteredWaitHandleFuncs)
1325 #ifdef FEATURE_COMINTEROP
1326 #ifdef FEATURE_COMINTEROP_MANAGED_ACTIVATION
1327 FCClassElement("RegistrationServices", "System.Runtime.InteropServices", gRegistrationFuncs)
1328 #endif // FEATURE_COMINTEROP_MANAGED_ACTIVATION
1329 #endif // FEATURE_COMINTEROP
1330
1331 FCClassElement("RuntimeAssembly", "System.Reflection", gRuntimeAssemblyFuncs)
1332 #ifdef FEATURE_COMINTEROP    
1333 FCClassElement("RuntimeClass", "System.Runtime.InteropServices.WindowsRuntime", gRuntimeClassFuncs)
1334 #endif // FEATURE_COMINTEROP    
1335 FCClassElement("RuntimeFieldHandle", "System", gCOMFieldHandleNewFuncs)
1336 FCClassElement("RuntimeHelpers", "System.Runtime.CompilerServices", gCompilerFuncs)
1337 FCClassElement("RuntimeImports", "System.Runtime", gRuntimeImportsFuncs)
1338 FCClassElement("RuntimeMethodHandle", "System", gRuntimeMethodHandle)
1339 FCClassElement("RuntimeModule", "System.Reflection", gCOMModuleFuncs)
1340 FCClassElement("RuntimeThread", "Internal.Runtime.Augments", gRuntimeThreadFuncs)
1341 FCClassElement("RuntimeType", "System", gSystem_RuntimeType)
1342 FCClassElement("RuntimeTypeHandle", "System", gCOMTypeHandleFuncs)
1343 FCClassElement("SafeHandle", "System.Runtime.InteropServices", gSafeHandleFuncs)
1344 FCClassElement("SafeTypeNameParserHandle", "System", gSafeTypeNameParserHandle)
1345
1346 FCClassElement("Signature", "System", gSignatureNative)
1347 FCClassElement("StackTrace", "System.Diagnostics", gDiagnosticsStackTrace)
1348 FCClassElement("Stream", "System.IO", gStreamFuncs)
1349 FCClassElement("String", "System", gStringFuncs)
1350 FCClassElement("StubHelpers", "System.StubHelpers", gStubHelperFuncs)
1351 FCClassElement("SynchronizationContext", "System.Threading", gContextSynchronizationFuncs)
1352 FCClassElement("Thread", "System.Threading", gThreadFuncs)
1353 FCClassElement("ThreadPool", "System.Threading", gThreadPoolFuncs)
1354 FCClassElement("TimerQueue", "System.Threading", gTimerFuncs)
1355 FCClassElement("Type", "System", gSystem_Type)
1356 FCClassElement("TypeBuilder", "System.Reflection.Emit", gCOMClassWriter)
1357 FCClassElement("TypeLoadException", "System", gTypeLoadExceptionFuncs)
1358 FCClassElement("TypeNameBuilder", "System.Reflection.Emit", gTypeNameBuilder)
1359 FCClassElement("TypeNameParser", "System", gTypeNameParser)
1360 FCClassElement("TypedReference", "System", gTypedReferenceFuncs)
1361 #ifdef FEATURE_COMINTEROP
1362 FCClassElement("UriMarshaler", "System.StubHelpers", gUriMarshalerFuncs)
1363 #endif
1364 FCClassElement("ValueClassMarshaler", "System.StubHelpers", gValueClassMarshalerFuncs)
1365 FCClassElement("ValueType", "System", gValueTypeFuncs)
1366 #ifdef FEATURE_COMINTEROP
1367 FCClassElement("Variant", "System", gVariantFuncs)
1368 #endif
1369 FCClassElement("WaitHandle", "System.Threading", gWaitHandleFuncs)
1370 FCClassElement("WeakReference", "System", gWeakReferenceFuncs)
1371 FCClassElement("WeakReference`1", "System", gWeakReferenceOfTFuncs)
1372
1373 #ifdef FEATURE_COMINTEROP
1374 FCClassElement("WinRTTypeNameConverter", "System.StubHelpers", gWinRTTypeNameConverterFuncs)
1375 #endif // FEATURE_COMINTEROP
1376
1377
1378 #if defined(FEATURE_EVENTSOURCE_XPLAT)
1379 FCClassElement("XplatEventLogger", "System.Diagnostics.Tracing", gEventLogger)
1380 #endif //defined(FEATURE_EVENTSOURCE_XPLAT)
1381
1382 #undef FCFuncElement
1383 #undef FCFuncElementSig
1384 #undef FCIntrinsic
1385 #undef FCIntrinsicSig
1386 #undef QCFuncElement
1387 #undef FCDynamic
1388 #undef FCDynamicSig
1389 #undef FCUnreferenced
1390 #undef FCFuncStart
1391 #undef FCFuncEnd
1392 #undef FCClassElement