ROSE  0.9.9.109
ModulesM68k.h
1 #ifndef ROSE_Partitioner2_ModulesM68k_H
2 #define ROSE_Partitioner2_ModulesM68k_H
3 
4 #include <Partitioner2/Function.h>
5 #include <Partitioner2/Partitioner.h>
6 
7 namespace Rose {
8 namespace BinaryAnalysis {
9 namespace Partitioner2 {
10 namespace ModulesM68k {
11 
16 protected:
17  Function::Ptr function_;
18 public:
20  static Ptr instance() { return Ptr(new MatchLink); }
21  virtual std::vector<Function::Ptr> functions() const ROSE_OVERRIDE { return std::vector<Function::Ptr>(1, function_); }
22  virtual bool match(const Partitioner&, rose_addr_t anchor) ROSE_OVERRIDE;
23 };
24 
27 public:
29  static Ptr instance() { return Ptr(new MatchFunctionPadding); }
30  virtual rose_addr_t match(const Partitioner&, rose_addr_t anchor) ROSE_OVERRIDE;
31 };
32 
35 public:
37  static Ptr instance() { return Ptr(new SwitchSuccessors); }
38  virtual bool operator()(bool chain, const Args&) ROSE_OVERRIDE;
39 };
40 
45 std::vector<Function::Ptr> findInterruptFunctions(const Partitioner&, rose_addr_t vectorVa);
46 
47 } // namespace
48 } // namespace
49 } // namespace
50 } // namespace
51 
52 #endif
Base class for matching function padding.
Definition: Modules.h:133
Base class for adjusting basic blocks during discovery.
Definition: Modules.h:38
Base class for matching function prologues.
Definition: Modules.h:107
virtual rose_addr_t match(const Partitioner &, rose_addr_t anchor) ROSE_OVERRIDE
Attempt to match padding.
STL namespace.
Main namespace for the ROSE library.
Adjusts basic block successors for M68k "switch" statements.
Definition: ModulesM68k.h:34
Sawyer::SharedPointer< FunctionPaddingMatcher > Ptr
Shared-ownership pointer to a FunctionPaddingMatcher.
Definition: Modules.h:136
virtual bool operator()(bool chain, const Args &) ROSE_OVERRIDE
Callback method.
Sawyer::SharedPointer< FunctionPrologueMatcher > Ptr
Shared-ownership pointer to a FunctionPrologueMatcher.
Definition: Modules.h:110
Sawyer::SharedPointer< BasicBlockCallback > Ptr
Shared-ownership pointer to a BasicBlockCallback.
Definition: Modules.h:41
Partitions instructions into basic blocks and functions.
Definition: Partitioner.h:289