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