1 #ifndef ROSE_BinaryAnalysis_Concolic_M68kSystem_Architecture_H
2 #define ROSE_BinaryAnalysis_Concolic_M68kSystem_Architecture_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_CONCOLIC_TESTING
6 #include <Rose/BinaryAnalysis/Concolic/Architecture.h>
7 #include <Rose/BinaryAnalysis/Partitioner2/BasicTypes.h>
10 #include <boost/process/child.hpp>
13 namespace BinaryAnalysis {
15 namespace M68kSystem {
22 using Super = Concolic::Architecture;
26 using Ptr = ArchitecturePtr;
29 boost::process::child qemu_;
43 static Ptr instance(
const DatabasePtr&, TestCaseId,
const Yaml::Node &config);
44 static Ptr instance(
const DatabasePtr&,
const TestCasePtr&,
const Yaml::Node &config);
52 virtual bool matchFactory(
const Yaml::Node&)
const override;
53 virtual Super::Ptr instanceFromFactory(
const DatabasePtr&, TestCaseId,
const Yaml::Node &config)
const override;
55 virtual void configureSystemCalls()
override;
56 virtual void load(
const boost::filesystem::path&)
override;
57 virtual ByteOrder::Endianness memoryByteOrder()
override;
58 virtual std::vector<ExecutionEventPtr> createMemoryHashEvents()
override;
59 virtual std::vector<ExecutionEventPtr> createMemoryAdjustEvents(
const MemoryMap::Ptr&, rose_addr_t insnVa)
override;
60 virtual std::vector<ExecutionEventPtr> createMemoryRestoreEvents()
override;
61 virtual void mapMemory(
const AddressInterval&,
unsigned permissions)
override;
SmtSolverPtr Ptr
Reference counting pointer for SMT solvers.
boost::shared_ptr< RiscOperators > RiscOperatorsPtr
Shared-ownership pointer to a RISC operators object.
Main namespace for the ROSE library.
boost::shared_ptr< Dispatcher > DispatcherPtr
Shared-ownership pointer to a semantics instruction dispatcher.
MemoryMapPtr Ptr
Reference counting pointer.
Sawyer::SharedPointer< Partitioner > PartitionerPtr
Shared-ownership pointer for Partitioner.
ROSE_DLL_API void load(SgProject *project, std::list< std::string > const &filepaths)
Load ASTs that have been saved to files.
Sawyer::SharedPointer< const Partitioner > PartitionerConstPtr
Shared-ownership pointer for Partitioner.
const char * Architecture(int64_t)
Convert Rose::BinaryAnalysis::Disassembler::Mips::Decoder::Architecture enum constant to a string...
Range of values delimited by endpoints.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.