1 #ifndef ROSE_BinaryAnalysis_Partitioner2_ModulesLinux_H
2 #define ROSE_BinaryAnalysis_Partitioner2_ModulesLinux_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
5 #include <Rose/BinaryAnalysis/Partitioner2/Modules.h>
7 #include <Rose/BinaryAnalysis/SystemCall.h>
8 #include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
11 namespace BinaryAnalysis {
12 namespace Partitioner2 {
15 namespace ModulesLinux {
48 virtual bool operator()(
bool chain,
const Args&)
override;
Base class for adjusting basic blocks during discovery.
Basic block callback to detect system calls that don't return.
Basic block callback to add "main" address as a function.
SystemCall systemCallAnalyzer(const PartitionerConstPtr &, const boost::filesystem::path &syscallHeader="")
Create a system call analyzer suitable for this architecture.
Sawyer::SharedPointer< LibcStartMain > Ptr
Shared ownership pointer to LibcStartMain callback.
Main namespace for the ROSE library.
void nameMainFunction(const PartitionerConstPtr &) const
Give the name "main" to the main function if it has no name yet.
Analyzes basic blocks to get system call names.
boost::shared_ptr< Dispatcher > DispatcherPtr
Shared-ownership pointer to a semantics instruction dispatcher.
virtual bool operator()(bool chain, const Args &) override
Callback method.
Describes (part of) a physical CPU register.
virtual bool operator()(bool chain, const Args &) override
Callback method.
void nameSystemCalls(const PartitionerConstPtr &, const boost::filesystem::path &syscallHeader="")
Adds comments to system call instructions.
static Ptr instance()
Allocating constructor.
Arguments passed to the callback.
static Ptr instance(const PartitionerConstPtr &, const boost::filesystem::path &syscallHeader="")
Allocating constructor.