klee
|
Public Member Functions | |
ExternalDispatcherImpl (llvm::LLVMContext &ctx) | |
~ExternalDispatcherImpl () | |
bool | executeCall (llvm::Function *function, llvm::Instruction *i, uint64_t *args) |
void * | resolveSymbol (const std::string &name) |
int | getLastErrno () |
void | setLastErrno (int newErrno) |
Private Types | |
typedef std::map< const llvm::Instruction *, llvm::Function * > | dispatchers_ty |
Private Member Functions | |
llvm::Function * | createDispatcher (llvm::Function *f, llvm::Instruction *i, llvm::Module *module) |
bool | runProtectedCall (llvm::Function *f, uint64_t *args) |
std::string & | getFreshModuleID () |
Private Attributes | |
dispatchers_ty | dispatchers |
llvm::ExecutionEngine * | executionEngine |
LLVMContext & | ctx |
std::map< std::string, void * > | preboundFunctions |
llvm::Module * | singleDispatchModule |
std::vector< std::string > | moduleIDs |
int | lastErrno |
Definition at line 47 of file ExternalDispatcher.cpp.
|
private |
Definition at line 49 of file ExternalDispatcher.cpp.
klee::ExternalDispatcherImpl::ExternalDispatcherImpl | ( | llvm::LLVMContext & | ctx | ) |
Definition at line 112 of file ExternalDispatcher.cpp.
References ctx, executionEngine, getFreshModuleID(), preboundFunctions, and singleDispatchModule.
klee::ExternalDispatcherImpl::~ExternalDispatcherImpl | ( | ) |
Definition at line 153 of file ExternalDispatcher.cpp.
References executionEngine.
|
private |
Definition at line 255 of file ExternalDispatcher.cpp.
References ctx, klee::gTheArgsP, and resolveSymbol().
Referenced by executeCall().
bool klee::ExternalDispatcherImpl::executeCall | ( | llvm::Function * | function, |
llvm::Instruction * | i, | ||
uint64_t * | args | ||
) |
Definition at line 159 of file ExternalDispatcher.cpp.
References createDispatcher(), ctx, dispatchers, executionEngine, getFreshModuleID(), preboundFunctions, and runProtectedCall().
Referenced by klee::ExternalDispatcher::executeCall().
|
private |
Definition at line 72 of file ExternalDispatcher.cpp.
References moduleIDs.
Referenced by executeCall(), and ExternalDispatcherImpl().
int klee::ExternalDispatcherImpl::getLastErrno | ( | ) |
Definition at line 339 of file ExternalDispatcher.cpp.
References lastErrno.
Referenced by klee::ExternalDispatcher::getLastErrno().
void * klee::ExternalDispatcherImpl::resolveSymbol | ( | const std::string & | name | ) |
Definition at line 85 of file ExternalDispatcher.cpp.
References executionEngine.
Referenced by createDispatcher(), and klee::ExternalDispatcher::resolveSymbol().
|
private |
Definition at line 214 of file ExternalDispatcher.cpp.
References escapeCallJmpBuf, executionEngine, klee::gTheArgsP, lastErrno, and sigsegv_handler().
Referenced by executeCall().
void klee::ExternalDispatcherImpl::setLastErrno | ( | int | newErrno | ) |
Definition at line 340 of file ExternalDispatcher.cpp.
References lastErrno.
Referenced by klee::ExternalDispatcher::setLastErrno().
|
private |
Definition at line 54 of file ExternalDispatcher.cpp.
Referenced by createDispatcher(), executeCall(), and ExternalDispatcherImpl().
|
private |
Definition at line 50 of file ExternalDispatcher.cpp.
Referenced by executeCall().
|
private |
Definition at line 53 of file ExternalDispatcher.cpp.
Referenced by executeCall(), ExternalDispatcherImpl(), resolveSymbol(), runProtectedCall(), and ~ExternalDispatcherImpl().
|
private |
Definition at line 60 of file ExternalDispatcher.cpp.
Referenced by getLastErrno(), runProtectedCall(), and setLastErrno().
|
private |
Definition at line 58 of file ExternalDispatcher.cpp.
Referenced by getFreshModuleID().
|
private |
Definition at line 55 of file ExternalDispatcher.cpp.
Referenced by executeCall(), and ExternalDispatcherImpl().
|
private |
Definition at line 57 of file ExternalDispatcher.cpp.
Referenced by ExternalDispatcherImpl().