ROSE  0.9.10.95
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 
12 namespace ModulesM68k {
13 
18 protected:
19  Function::Ptr function_;
20 public:
22  static Ptr instance() { return Ptr(new MatchLink); }
23  virtual std::vector<Function::Ptr> functions() const ROSE_OVERRIDE { return std::vector<Function::Ptr>(1, function_); }
24  virtual bool match(const Partitioner&, rose_addr_t anchor) ROSE_OVERRIDE;
25 };
26 
29 public:
31  static Ptr instance() { return Ptr(new MatchFunctionPadding); }
32  virtual rose_addr_t match(const Partitioner&, rose_addr_t anchor) ROSE_OVERRIDE;
33 };
34 
37 public:
39  static Ptr instance() { return Ptr(new SwitchSuccessors); }
40  virtual bool operator()(bool chain, const Args&) ROSE_OVERRIDE;
41 };
42 
47 std::vector<Function::Ptr> findInterruptFunctions(const Partitioner&, rose_addr_t vectorVa);
48 
49 } // namespace
50 } // namespace
51 } // namespace
52 } // namespace
53 
54 #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:36
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:293
std::vector< Function::Ptr > findInterruptFunctions(const Partitioner &, rose_addr_t vectorVa)
Find functions for an interrupt vector.