//===-- InProcessMemoryAccess.h - Direct, in-process mem access -*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Accesses memory in the current process. // //===----------------------------------------------------------------------===// #ifndef LLVM_EXECUTIONENGINE_ORC_INPROCESSMEMORYACCESS_H #define LLVM_EXECUTIONENGINE_ORC_INPROCESSMEMORYACCESS_H #include "llvm/ExecutionEngine/Orc/MemoryAccess.h" namespace llvm::orc { class LLVM_ABI InProcessMemoryAccess : public MemoryAccess { public: InProcessMemoryAccess(bool IsArch64Bit) : IsArch64Bit(IsArch64Bit) {} void writeUInt8sAsync(ArrayRef Ws, WriteResultFn OnWriteComplete) override; void writeUInt16sAsync(ArrayRef Ws, WriteResultFn OnWriteComplete) override; void writeUInt32sAsync(ArrayRef Ws, WriteResultFn OnWriteComplete) override; void writeUInt64sAsync(ArrayRef Ws, WriteResultFn OnWriteComplete) override; void writePointersAsync(ArrayRef Ws, WriteResultFn OnWriteComplete) override; void writeBuffersAsync(ArrayRef Ws, WriteResultFn OnWriteComplete) override; void readUInt8sAsync(ArrayRef Rs, OnReadUIntsCompleteFn OnComplete) override; void readUInt16sAsync(ArrayRef Rs, OnReadUIntsCompleteFn OnComplete) override; void readUInt32sAsync(ArrayRef Rs, OnReadUIntsCompleteFn OnComplete) override; void readUInt64sAsync(ArrayRef Rs, OnReadUIntsCompleteFn OnComplete) override; void readPointersAsync(ArrayRef Rs, OnReadPointersCompleteFn OnComplete) override; void readBuffersAsync(ArrayRef Rs, OnReadBuffersCompleteFn OnComplete) override; void readStringsAsync(ArrayRef Rs, OnReadStringsCompleteFn OnComplete) override; private: bool IsArch64Bit; }; } // namespace llvm::orc #endif // LLVM_EXECUTIONENGINE_ORC_INPROCESSMEMORYACCESS_H