summaryrefslogtreecommitdiff
path: root/src/vm/ecalllist.h
diff options
context:
space:
mode:
authorJeremy Koritzinsky <jkoritzinsky@gmail.com>2019-03-20 22:59:29 -0700
committerGitHub <noreply@github.com>2019-03-20 22:59:29 -0700
commitea10aaccb09fe30f0444b821fd8d90d9257dd402 (patch)
treec8ef86fb97af7c49ac8e9f0635c3ac888c1de6a3 /src/vm/ecalllist.h
parent42c234f25baf2a6bdd3a429cb8a9530a5dfa54b6 (diff)
downloadcoreclr-ea10aaccb09fe30f0444b821fd8d90d9257dd402.tar.gz
coreclr-ea10aaccb09fe30f0444b821fd8d90d9257dd402.tar.bz2
coreclr-ea10aaccb09fe30f0444b821fd8d90d9257dd402.zip
Runtime changes for IJW Activation (#22636)
* Implement loading an assembly from an HMODULE on Windows. * Use the native runtime to execute the main method so I don't have to replicate all of the startup behavior. * If ijwhost is loaded, then call back into ijwhost to resolve tokens for vtable entries. * Refactor our various component loaders (COM and IJW) and have IJW load components into separate ALCs when loaded from native. * Move VTableFixups after DeliverSyncEvents in our incremental load. We need the module to be loaded to at least FILE_LOAD_DELIVER_EVENTS when resolving dependencies loaded via VTableFixups, otherwise they try to load into the default ALC. * Only try to get ijwhost module handle on Windows. * Use defined() instead of ifndef * Fix off-Windows build break and fix unvalid comment. * ComponentLoadContext->IsolatedComponentLoadContext * Only build InMemoryAssemblyLoader when targeting windows. * Add doc comments for IsolatedComponentLoadContext. * Rename qcall. * Add comment for boolean parameter. * Add null check for managed ExecuteMainMethod entrypoint. * Add comments in ceeload.cpp for the ijwhost method resolution. * Add test verifying runtime callback to IJW host. * Add test for InMemoryAssemblyLoader.LoadInMemoryAssembly. * Fix x86 behavior rel. loading symbols by name and stdcall mangling. * Remove exe entrypoints. The executable case for mixed-mode will go through the normal .NET Core app model (no special hosting support needed). * Clean up whitespace * Add test verifying M->N->M ALC switch behavior with IJW. * Resolve the ijwhost module by probing the PE for the IJW assembly instead of hardcoding the name. * Remove static caching in GetTokenGetterFromHostModule. * Disable new IJW tests on Win7. * PR Feedback. * Cleanup extra copy of function. * Use old-style environment checking in LoadIjwFromModuleHandle since we reference S.P.CL directly. * Fix break in rebase * Clean up fake mscoree code. * Only validate that a CLR header exists. The OS verifies everything else. * Make ijw host resolution code static to ceeload.cpp * Use bracketed include for xplatform.h * Update comment on _CorDllMain * PR feedback. * Remove .def file. * PR feedback. * Verify we export correctly on x86 and x64. * Fix path to ijwhostmock for CopyConstructorMarshaler * Disable IJW tests on arm32 nightly. Can't repro the dependency load failures. Fixes #23358
Diffstat (limited to 'src/vm/ecalllist.h')
-rw-r--r--src/vm/ecalllist.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vm/ecalllist.h b/src/vm/ecalllist.h
index 7302bb4e4a..c184633221 100644
--- a/src/vm/ecalllist.h
+++ b/src/vm/ecalllist.h
@@ -520,6 +520,9 @@ FCFuncStart(gAssemblyLoadContextFuncs)
QCFuncElement("LoadFromPath", AssemblyNative::LoadFromPath)
QCFuncElement("InternalLoadUnmanagedDllFromPath", AssemblyNative::InternalLoadUnmanagedDllFromPath)
QCFuncElement("LoadFromStream", AssemblyNative::LoadFromStream)
+#ifndef FEATURE_PAL
+ QCFuncElement("LoadFromInMemoryModuleInternal", AssemblyNative::LoadFromInMemoryModule)
+#endif
QCFuncElement("GetLoadContextForAssembly", AssemblyNative::GetLoadContextForAssembly)
FCFuncElement("GetLoadedAssemblies", AppDomainNative::GetLoadedAssemblies)
#if defined(FEATURE_MULTICOREJIT)