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