1 //===-- RuntimeDyld.h - Run-time dynamic linker for MC-JIT ------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Interface for the runtime dynamic linker facilities of the MC-JIT.
12 //===----------------------------------------------------------------------===//
14 #ifndef LLVM_RUNTIME_DYLD_H
15 #define LLVM_RUNTIME_DYLD_H
17 #include "llvm/ADT/StringRef.h"
18 #include "llvm/Support/Memory.h"
22 class RuntimeDyldImpl;
24 class JITMemoryManager;
27 RuntimeDyld(const RuntimeDyld &); // DO NOT IMPLEMENT
28 void operator=(const RuntimeDyld &); // DO NOT IMPLEMENT
30 // RuntimeDyldImpl is the actual class. RuntimeDyld is just the public
32 RuntimeDyldImpl *Dyld;
34 RuntimeDyld(JITMemoryManager*);
37 bool loadObject(MemoryBuffer *InputBuffer);
38 void *getSymbolAddress(StringRef Name);
39 // FIXME: Should be parameterized to get the memory block associated with
40 // a particular loaded object.
41 sys::MemoryBlock getMemoryBlock();
42 StringRef getErrorString();
45 } // end namespace llvm