14#ifndef LLVM_EXECUTIONENGINE_ORC_SELFEXECUTORPROCESSCONTROL_H
15#define LLVM_EXECUTIONENGINE_ORC_SELFEXECUTORPROCESSCONTROL_H
28 std::shared_ptr<SymbolStringPool>
SSP, std::unique_ptr<TaskDispatcher>
D,
30 std::unique_ptr<jitlink::JITLinkMemoryManager>
MemMgr);
38 Create(std::shared_ptr<SymbolStringPool>
SSP =
nullptr,
39 std::unique_ptr<TaskDispatcher>
D =
nullptr,
40 std::unique_ptr<jitlink::JITLinkMemoryManager>
MemMgr =
nullptr);
60 InProcessDylibManager(
char GlobalManglingPrefix);
67 char GlobalManglingPrefix;
71 jitDispatchViaWrapperFunctionManager(
void *Ctx,
const void *FnTag,
74 std::unique_ptr<jitlink::JITLinkMemoryManager> OwnedMemMgr;
76 std::unique_ptr<UnwindInfoManager> UnwindInfoMgr;
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Lightweight error class with error context and mandatory checking.
Tagged union holding either a T or a Error.
Triple - Helper class for working with autoconf configuration names.
unique_function< void(Expected< std::vector< tpctypes::LookupResult > >)> SymbolLookupCompleteFn
Represents an address in the executor process.
A handler or incoming WrapperFunctionBuffers – either return values from callWrapper* calls,...
std::unique_ptr< TaskDispatcher > D
std::shared_ptr< SymbolStringPool > SSP
jitlink::JITLinkMemoryManager * MemMgr
ExecutorProcessControl(std::shared_ptr< SymbolStringPool > SSP, std::unique_ptr< TaskDispatcher > D)
SelfExecutorProcessControl(std::shared_ptr< SymbolStringPool > SSP, std::unique_ptr< TaskDispatcher > D, Triple TargetTriple, unsigned PageSize, std::unique_ptr< jitlink::JITLinkMemoryManager > MemMgr)
Error disconnect() override
Disconnect from the target process.
Expected< int32_t > runAsVoidFunction(ExecutorAddr VoidFnAddr) override
Run function with a int (*)(void) signature.
Expected< int32_t > runAsMain(ExecutorAddr MainFnAddr, ArrayRef< std::string > Args) override
Run function with a main-like signature.
void callWrapperAsync(ExecutorAddr WrapperFnAddr, IncomingWFRHandler OnComplete, ArrayRef< char > ArgBuffer) override
Run a wrapper function in the executor.
Expected< std::unique_ptr< DylibManager > > createDefaultDylibMgr() override
Create a default DylibManager for the target process.
static Expected< std::unique_ptr< SelfExecutorProcessControl > > Create(std::shared_ptr< SymbolStringPool > SSP=nullptr, std::unique_ptr< TaskDispatcher > D=nullptr, std::unique_ptr< jitlink::JITLinkMemoryManager > MemMgr=nullptr)
Create a SelfExecutorProcessControl with the given symbol string pool and memory manager.
Expected< int32_t > runAsIntFunction(ExecutorAddr IntFnAddr, int Arg) override
Run function with a int (*)(int) signature.
FunctionAddr VTableAddr uintptr_t uintptr_t Data