1 #ifndef ROSE_BinaryAnalysis_Concolic_Callback_MemoryInput_H
2 #define ROSE_BinaryAnalysis_Concolic_Callback_MemoryInput_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_CONCOLIC_TESTING
5 #include <Rose/BinaryAnalysis/Concolic/SharedMemory.h>
7 #include <Rose/BinaryAnalysis/SymbolicExpression.h>
11 #include <Sawyer/IntervalMap.h>
14 namespace BinaryAnalysis {
22 class MemoryInput:
public SharedMemoryCallback {
25 ByteMap previousReads_;
26 ByteOrder::Endianness byteOrder_;
30 using Ptr = MemoryInputPtr;
33 MemoryInput(
const std::string &name);
34 MemoryInput(
const AddressInterval &where,
const std::string &name, ByteOrder::Endianness);
40 static Ptr instance(
const AddressInterval &where, ByteOrder::Endianness = ByteOrder::ORDER_UNSPECIFIED);
50 ByteOrder::Endianness byteOrder()
const;
51 void byteOrder(ByteOrder::Endianness);
55 virtual SharedMemoryCallbackPtr instanceFromFactory(
const AddressInterval&,
const Yaml::Node &config)
const override;
56 virtual void handlePreSharedMemory(SharedMemoryContext&)
override;
57 virtual void playback(SharedMemoryContext&)
override;
An associative container whose keys are non-overlapping intervals.
Main namespace for the ROSE library.
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.