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