21#ifndef LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESS_H
22#define LLVM_EXECUTIONENGINE_ORC_EPCGENERICMEMORYACCESS_H
78 : ES(ES), Fns(
std::
move(Fns)) {}
82 Fns.WriteUInt8s(std::move(OnWriteComplete), ES, Ws);
87 Fns.WriteUInt16s(std::move(OnWriteComplete), ES, Ws);
92 Fns.WriteUInt32s(std::move(OnWriteComplete), ES, Ws);
97 Fns.WriteUInt64s(std::move(OnWriteComplete), ES, Ws);
102 Fns.WritePointers(std::move(OnWriteComplete), ES, Ws);
107 Fns.WriteBuffers(std::move(OnWriteComplete), ES, Ws);
112 Fns.ReadUInt8s(std::move(OnComplete), ES, Rs);
117 Fns.ReadUInt16s(std::move(OnComplete), ES, Rs);
122 Fns.ReadUInt32s(std::move(OnComplete), ES, Rs);
127 Fns.ReadUInt64s(std::move(OnComplete), ES, Rs);
132 Fns.ReadPointers(std::move(OnComplete), ES, Rs);
137 Fns.ReadBuffers(std::move(OnComplete), ES, Rs);
142 Fns.ReadStrings(std::move(OnComplete), ES, Rs);
Represent a constant reference to an array (0 or more elements consecutively in memory),...
void readUInt8sAsync(ArrayRef< ExecutorAddr > Rs, OnReadUIntsCompleteFn< uint8_t > OnComplete) override
void readUInt32sAsync(ArrayRef< ExecutorAddr > Rs, OnReadUIntsCompleteFn< uint32_t > OnComplete) override
Proxy< void(ArrayRef< tpctypes::UInt32Write >)> WriteUInt32sProxy
Proxy< std::vector< uint16_t >(ArrayRef< ExecutorAddr >)> ReadUInt16sProxy
void writeUInt16sAsync(ArrayRef< tpctypes::UInt16Write > Ws, WriteResultFn OnWriteComplete) override
void readStringsAsync(ArrayRef< ExecutorAddr > Rs, OnReadStringsCompleteFn OnComplete) override
void readUInt16sAsync(ArrayRef< ExecutorAddr > Rs, OnReadUIntsCompleteFn< uint16_t > OnComplete) override
Proxy< std::vector< std::string >(ArrayRef< ExecutorAddr >)> ReadStringsProxy
Proxy< void(ArrayRef< tpctypes::UInt64Write >)> WriteUInt64sProxy
void readBuffersAsync(ArrayRef< ExecutorAddrRange > Rs, OnReadBuffersCompleteFn OnComplete) override
void writeUInt32sAsync(ArrayRef< tpctypes::UInt32Write > Ws, WriteResultFn OnWriteComplete) override
Proxy< void(ArrayRef< tpctypes::UInt8Write >)> WriteUInt8sProxy
void writeUInt64sAsync(ArrayRef< tpctypes::UInt64Write > Ws, WriteResultFn OnWriteComplete) override
void writePointersAsync(ArrayRef< tpctypes::PointerWrite > Ws, WriteResultFn OnWriteComplete) override
Proxy< std::vector< std::vector< uint8_t > >(ArrayRef< ExecutorAddrRange >)> ReadBuffersProxy
void readUInt64sAsync(ArrayRef< ExecutorAddr > Rs, OnReadUIntsCompleteFn< uint64_t > OnComplete) override
Proxy< std::vector< ExecutorAddr >(ArrayRef< ExecutorAddr >)> ReadPointersProxy
EPCGenericMemoryAccess(ExecutionSession &ES, Funcs Fns)
Create an EPCGenericMemoryAccess instance from a given set of memory access proxies.
Proxy< std::vector< uint64_t >(ArrayRef< ExecutorAddr >)> ReadUInt64sProxy
Proxy< void(ArrayRef< tpctypes::UInt16Write >)> WriteUInt16sProxy
void readPointersAsync(ArrayRef< ExecutorAddr > Rs, OnReadPointersCompleteFn OnComplete) override
void writeUInt8sAsync(ArrayRef< tpctypes::UInt8Write > Ws, WriteResultFn OnWriteComplete) override
Proxy< std::vector< uint8_t >(ArrayRef< ExecutorAddr >)> ReadUInt8sProxy
Proxy< void(ArrayRef< tpctypes::PointerWrite >)> WritePointersProxy
Proxy< void(ArrayRef< tpctypes::BufferWrite >)> WriteBuffersProxy
void writeBuffersAsync(ArrayRef< tpctypes::BufferWrite > Ws, WriteResultFn OnWriteComplete) override
Proxy< std::vector< uint32_t >(ArrayRef< ExecutorAddr >)> ReadUInt32sProxy
An ExecutionSession represents a running JIT program.
APIs for manipulating memory in the target process.
unique_function< void(Expected< ReadStringsResult >)> OnReadStringsCompleteFn
unique_function< void(Expected< ReadBuffersResult >)> OnReadBuffersCompleteFn
unique_function< void(Expected< ReadPointersResult >)> OnReadPointersCompleteFn
unique_function< void(Error)> WriteResultFn
Callback function for asynchronous writes.
unique_function< void(Expected< ReadUIntsResult< T > >)> OnReadUIntsCompleteFn
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.
Proxies for the executor-side memory-access functions.
WriteBuffersProxy WriteBuffers
ReadUInt8sProxy ReadUInt8s
ReadUInt32sProxy ReadUInt32s
WriteUInt64sProxy WriteUInt64s
ReadUInt64sProxy ReadUInt64s
WriteUInt16sProxy WriteUInt16s
ReadUInt16sProxy ReadUInt16s
ReadBuffersProxy ReadBuffers
WritePointersProxy WritePointers
WriteUInt32sProxy WriteUInt32s
ReadPointersProxy ReadPointers
ReadStringsProxy ReadStrings
WriteUInt8sProxy WriteUInt8s