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