1349cc55cSDimitry Andric //===---- OrcRTBridge.h -- Utils for interacting with orc-rt ----*- C++ -*-===// 2349cc55cSDimitry Andric // 3349cc55cSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4349cc55cSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5349cc55cSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6349cc55cSDimitry Andric // 7349cc55cSDimitry Andric //===----------------------------------------------------------------------===// 8349cc55cSDimitry Andric // 9349cc55cSDimitry Andric // Declares types and symbol names provided by the ORC runtime. 10349cc55cSDimitry Andric // 11349cc55cSDimitry Andric //===----------------------------------------------------------------------===// 12349cc55cSDimitry Andric 13349cc55cSDimitry Andric #ifndef LLVM_EXECUTIONENGINE_ORC_SHARED_ORCRTBRIDGE_H 14349cc55cSDimitry Andric #define LLVM_EXECUTIONENGINE_ORC_SHARED_ORCRTBRIDGE_H 15349cc55cSDimitry Andric 16349cc55cSDimitry Andric #include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h" 17*1db9f3b2SDimitry Andric #include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h" 18349cc55cSDimitry Andric #include "llvm/ExecutionEngine/Orc/Shared/SimpleRemoteEPCUtils.h" 19349cc55cSDimitry Andric #include "llvm/ExecutionEngine/Orc/Shared/TargetProcessControlTypes.h" 20349cc55cSDimitry Andric 21349cc55cSDimitry Andric namespace llvm { 22349cc55cSDimitry Andric namespace orc { 23349cc55cSDimitry Andric namespace rt { 24349cc55cSDimitry Andric 25349cc55cSDimitry Andric extern const char *SimpleExecutorDylibManagerInstanceName; 26349cc55cSDimitry Andric extern const char *SimpleExecutorDylibManagerOpenWrapperName; 27349cc55cSDimitry Andric extern const char *SimpleExecutorDylibManagerLookupWrapperName; 28349cc55cSDimitry Andric 29349cc55cSDimitry Andric extern const char *SimpleExecutorMemoryManagerInstanceName; 30349cc55cSDimitry Andric extern const char *SimpleExecutorMemoryManagerReserveWrapperName; 31349cc55cSDimitry Andric extern const char *SimpleExecutorMemoryManagerFinalizeWrapperName; 32349cc55cSDimitry Andric extern const char *SimpleExecutorMemoryManagerDeallocateWrapperName; 33349cc55cSDimitry Andric 34fcaf7f86SDimitry Andric extern const char *ExecutorSharedMemoryMapperServiceInstanceName; 35fcaf7f86SDimitry Andric extern const char *ExecutorSharedMemoryMapperServiceReserveWrapperName; 36fcaf7f86SDimitry Andric extern const char *ExecutorSharedMemoryMapperServiceInitializeWrapperName; 37fcaf7f86SDimitry Andric extern const char *ExecutorSharedMemoryMapperServiceDeinitializeWrapperName; 38fcaf7f86SDimitry Andric extern const char *ExecutorSharedMemoryMapperServiceReleaseWrapperName; 39fcaf7f86SDimitry Andric 40349cc55cSDimitry Andric extern const char *MemoryWriteUInt8sWrapperName; 41349cc55cSDimitry Andric extern const char *MemoryWriteUInt16sWrapperName; 42349cc55cSDimitry Andric extern const char *MemoryWriteUInt32sWrapperName; 43349cc55cSDimitry Andric extern const char *MemoryWriteUInt64sWrapperName; 44349cc55cSDimitry Andric extern const char *MemoryWriteBuffersWrapperName; 45349cc55cSDimitry Andric 4604eeddc0SDimitry Andric extern const char *RegisterEHFrameSectionWrapperName; 4704eeddc0SDimitry Andric extern const char *DeregisterEHFrameSectionWrapperName; 48349cc55cSDimitry Andric 49349cc55cSDimitry Andric extern const char *RunAsMainWrapperName; 50bdd1243dSDimitry Andric extern const char *RunAsVoidFunctionWrapperName; 51bdd1243dSDimitry Andric extern const char *RunAsIntFunctionWrapperName; 52349cc55cSDimitry Andric 53349cc55cSDimitry Andric using SPSSimpleExecutorDylibManagerOpenSignature = 54bdd1243dSDimitry Andric shared::SPSExpected<shared::SPSExecutorAddr>(shared::SPSExecutorAddr, 55bdd1243dSDimitry Andric shared::SPSString, uint64_t); 56349cc55cSDimitry Andric 57349cc55cSDimitry Andric using SPSSimpleExecutorDylibManagerLookupSignature = 58*1db9f3b2SDimitry Andric shared::SPSExpected<shared::SPSSequence<shared::SPSExecutorSymbolDef>>( 59bdd1243dSDimitry Andric shared::SPSExecutorAddr, shared::SPSExecutorAddr, 60bdd1243dSDimitry Andric shared::SPSRemoteSymbolLookupSet); 61349cc55cSDimitry Andric 62349cc55cSDimitry Andric using SPSSimpleExecutorMemoryManagerReserveSignature = 63349cc55cSDimitry Andric shared::SPSExpected<shared::SPSExecutorAddr>(shared::SPSExecutorAddr, 64349cc55cSDimitry Andric uint64_t); 65349cc55cSDimitry Andric using SPSSimpleExecutorMemoryManagerFinalizeSignature = 66349cc55cSDimitry Andric shared::SPSError(shared::SPSExecutorAddr, shared::SPSFinalizeRequest); 67349cc55cSDimitry Andric using SPSSimpleExecutorMemoryManagerDeallocateSignature = shared::SPSError( 68349cc55cSDimitry Andric shared::SPSExecutorAddr, shared::SPSSequence<shared::SPSExecutorAddr>); 69349cc55cSDimitry Andric 70fcaf7f86SDimitry Andric // ExecutorSharedMemoryMapperService 71fcaf7f86SDimitry Andric using SPSExecutorSharedMemoryMapperServiceReserveSignature = 72fcaf7f86SDimitry Andric shared::SPSExpected< 73fcaf7f86SDimitry Andric shared::SPSTuple<shared::SPSExecutorAddr, shared::SPSString>>( 74fcaf7f86SDimitry Andric shared::SPSExecutorAddr, uint64_t); 75fcaf7f86SDimitry Andric using SPSExecutorSharedMemoryMapperServiceInitializeSignature = 76fcaf7f86SDimitry Andric shared::SPSExpected<shared::SPSExecutorAddr>( 77fcaf7f86SDimitry Andric shared::SPSExecutorAddr, shared::SPSExecutorAddr, 78fcaf7f86SDimitry Andric shared::SPSSharedMemoryFinalizeRequest); 79fcaf7f86SDimitry Andric using SPSExecutorSharedMemoryMapperServiceDeinitializeSignature = 80fcaf7f86SDimitry Andric shared::SPSError(shared::SPSExecutorAddr, 81fcaf7f86SDimitry Andric shared::SPSSequence<shared::SPSExecutorAddr>); 82fcaf7f86SDimitry Andric using SPSExecutorSharedMemoryMapperServiceReleaseSignature = shared::SPSError( 83fcaf7f86SDimitry Andric shared::SPSExecutorAddr, shared::SPSSequence<shared::SPSExecutorAddr>); 84fcaf7f86SDimitry Andric 85349cc55cSDimitry Andric using SPSRunAsMainSignature = int64_t(shared::SPSExecutorAddr, 86349cc55cSDimitry Andric shared::SPSSequence<shared::SPSString>); 87bdd1243dSDimitry Andric using SPSRunAsVoidFunctionSignature = int32_t(shared::SPSExecutorAddr); 88bdd1243dSDimitry Andric using SPSRunAsIntFunctionSignature = int32_t(shared::SPSExecutorAddr, int32_t); 89349cc55cSDimitry Andric } // end namespace rt 90349cc55cSDimitry Andric } // end namespace orc 91349cc55cSDimitry Andric } // end namespace llvm 92349cc55cSDimitry Andric 93349cc55cSDimitry Andric #endif // LLVM_EXECUTIONENGINE_ORC_SHARED_ORCRTBRIDGE_H 94