ROSE  0.9.10.91
ModulesLinux.h
1 #ifndef ROSE_Partitioner2_ModulesLinux_H
2 #define ROSE_Partitioner2_ModulesLinux_H
3 
4 #include <Partitioner2/Modules.h>
5 
6 #include <BinarySystemCall.h>
7 
8 namespace Rose {
9 namespace BinaryAnalysis {
10 namespace Partitioner2 {
11 
13 namespace ModulesLinux {
14 
16 SystemCall systemCallAnalyzer(const Partitioner&, const boost::filesystem::path &syscallHeader = "");
17 
23  SystemCall analyzer_;
24 protected:
25  SyscallSuccessors(const Partitioner&, const boost::filesystem::path &syscallHeader);
26 public:
30  static Ptr instance(const Partitioner&, const boost::filesystem::path &syscallHeader = "");
31 
32  virtual bool operator()(bool chain, const Args&) ROSE_OVERRIDE;
33 };
34 
40 public:
41  static Ptr instance() { return Ptr(new LibcStartMain); }
42  virtual bool operator()(bool chain, const Args&) ROSE_OVERRIDE;
43 };
44 
49 void
50 nameSystemCalls(const Partitioner&, const boost::filesystem::path &syscallHeader = "");
51 
52 } // namespace
53 } // namespace
54 } // namespace
55 } // namespace
56 
57 #endif
58 
virtual bool operator()(bool chain, const Args &) ROSE_OVERRIDE
Callback method.
Base class for adjusting basic blocks during discovery.
Definition: Modules.h:38
Basic block callback to detect system calls that don't return.
Definition: ModulesLinux.h:22
Basic block callback to add "main" address as a function.
Definition: ModulesLinux.h:39
virtual bool operator()(bool chain, const Args &) ROSE_OVERRIDE
Callback method.
Main namespace for the ROSE library.
SystemCall systemCallAnalyzer(const Partitioner &, const boost::filesystem::path &syscallHeader="")
Create a system call analyzer suitable for this architecture.
static Ptr instance(const Partitioner &, const boost::filesystem::path &syscallHeader="")
Allocating constructor.
Reference-counting smart pointer.
Definition: SharedPointer.h:34
Analyzes basic blocks to get system call names.
void nameSystemCalls(const Partitioner &, const boost::filesystem::path &syscallHeader="")
Adds comments to system call instructions.
Sawyer::SharedPointer< BasicBlockCallback > Ptr
Shared-ownership pointer to a BasicBlockCallback.
Definition: Modules.h:41
Partitions instructions into basic blocks and functions.
Definition: Partitioner.h:293