klee
ExternalDispatcher.h
Go to the documentation of this file.
1//===-- ExternalDispatcher.h ------------------------------------*- C++ -*-===//
2//
3// The KLEE Symbolic Virtual Machine
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef KLEE_EXTERNALDISPATCHER_H
11#define KLEE_EXTERNALDISPATCHER_H
12
13#include "klee/Config/Version.h"
14
15#include <map>
16#include <memory>
17#include <stdint.h>
18#include <string>
19
20namespace llvm {
21class Instruction;
22class LLVMContext;
23class Function;
24}
25
26namespace klee {
27class ExternalDispatcherImpl;
29private:
31
32public:
33 ExternalDispatcher(llvm::LLVMContext &ctx);
35
36 /* Call the given function using the parameter passing convention of
37 * ci with arguments in args[1], args[2], ... and writing the result
38 * into args[0].
39 */
40 bool executeCall(llvm::Function *function, llvm::Instruction *i,
41 uint64_t *args);
42 void *resolveSymbol(const std::string &name);
43
44 int getLastErrno();
45 void setLastErrno(int newErrno);
46};
47}
48
49#endif /* KLEE_EXTERNALDISPATCHER_H */
void * resolveSymbol(const std::string &name)
bool executeCall(llvm::Function *function, llvm::Instruction *i, uint64_t *args)
void setLastErrno(int newErrno)
ExternalDispatcher(llvm::LLVMContext &ctx)
ExternalDispatcherImpl * impl
Definition: main.cpp:291