ROSE  0.11.2.0
ModulesLinux.h
1 #ifndef ROSE_Partitioner2_ModulesLinux_H
2 #define ROSE_Partitioner2_ModulesLinux_H
3 
4 #include <Partitioner2/Modules.h>
5 #ifdef ROSE_BUILD_BINARY_ANALYSIS_SUPPORT
6 
7 #include <BinarySystemCall.h>
8 
9 namespace Rose {
10 namespace BinaryAnalysis {
11 namespace Partitioner2 {
12 
14 namespace ModulesLinux {
15 
17 SystemCall systemCallAnalyzer(const Partitioner&, const boost::filesystem::path &syscallHeader = "");
18 
23 class SyscallSuccessors: public BasicBlockCallback {
24  SystemCall analyzer_;
25 protected:
26  SyscallSuccessors(const Partitioner&, const boost::filesystem::path &syscallHeader);
27 public:
31  static Ptr instance(const Partitioner&, const boost::filesystem::path &syscallHeader = "");
32 
33  virtual bool operator()(bool chain, const Args&) ROSE_OVERRIDE;
34 };
35 
40 class LibcStartMain: public BasicBlockCallback {
42 public:
45 
46  static Ptr instance() { return Ptr(new LibcStartMain); }
47  virtual bool operator()(bool chain, const Args&) ROSE_OVERRIDE;
48 
50  void nameMainFunction(const Partitioner&) const;
51 };
52 
57 void nameSystemCalls(const Partitioner&, const boost::filesystem::path &syscallHeader = "");
58 
59 } // namespace
60 } // namespace
61 } // namespace
62 } // namespace
63 
64 #endif
65 #endif
Sawyer::SharedPointer< Node > Ptr
Shared-ownership pointer to an expression Node.
Main namespace for the ROSE library.
Reference-counting intrusive smart pointer.
Definition: SharedPointer.h:68