|
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().