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