ROSE  0.11.145.0
ModulesM68k.h
1 #ifndef ROSE_BinaryAnalysis_Partitioner2_ModulesM68k_H
2 #define ROSE_BinaryAnalysis_Partitioner2_ModulesM68k_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
5 #include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
6 
7 #include <Rose/BinaryAnalysis/Partitioner2/Modules.h>
8 
9 namespace Rose {
10 namespace BinaryAnalysis {
11 namespace Partitioner2 {
12 
14 namespace ModulesM68k {
15 
20 protected:
21  FunctionPtr function_;
22 
23 protected:
24  MatchLink();
25 public:
26  ~MatchLink();
27 
29  static Ptr instance();
30  virtual std::vector<FunctionPtr> functions() const override;
31  virtual bool match(const PartitionerConstPtr&, rose_addr_t anchor) override;
32 };
33 
36 public:
38  static Ptr instance() { return Ptr(new MatchFunctionPadding); }
39  virtual rose_addr_t match(const PartitionerConstPtr&, rose_addr_t anchor) override;
40 };
41 
44 public:
46  static Ptr instance() { return Ptr(new SwitchSuccessors); }
47  virtual bool operator()(bool chain, const Args&) override;
48 };
49 
54 std::vector<FunctionPtr> findInterruptFunctions(const PartitionerConstPtr&, rose_addr_t vectorVa);
55 
56 } // namespace
57 } // namespace
58 } // namespace
59 } // namespace
60 
61 #endif
62 #endif
Base class for matching function padding.
Definition: Modules.h:134
Base class for adjusting basic blocks during discovery.
Definition: Modules.h:39
Base class for matching function prologues.
Definition: Modules.h:108
virtual bool operator()(bool chain, const Args &) override
Callback method.
std::vector< FunctionPtr > findInterruptFunctions(const PartitionerConstPtr &, rose_addr_t vectorVa)
Find functions for an interrupt vector.
FunctionPaddingMatcherPtr Ptr
Shared-ownership pointer to a FunctionPaddingMatcher.
Definition: Modules.h:137
Main namespace for the ROSE library.
Adjusts basic block successors for M68k "switch" statements.
Definition: ModulesM68k.h:43
BasicBlockCallbackPtr Ptr
Shared-ownership pointer to a BasicBlockCallback.
Definition: Modules.h:42
virtual rose_addr_t match(const PartitionerConstPtr &, rose_addr_t anchor) override
Attempt to match padding.