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/ByteOrder.h>
8 #include <Rose/BinaryAnalysis/SymbolicExpression.h>
10 #include <Sawyer/IntervalMap.h>
13 namespace BinaryAnalysis {
21 class MemoryInput:
public SharedMemoryCallback {
24 ByteMap previousReads_;
25 ByteOrder::Endianness byteOrder_;
29 using Ptr = MemoryInputPtr;
32 MemoryInput(
const std::string &name);
33 MemoryInput(
const AddressInterval &where,
const std::string &name, ByteOrder::Endianness);
39 static Ptr instance(
const AddressInterval &where, ByteOrder::Endianness = ByteOrder::ORDER_UNSPECIFIED);
49 ByteOrder::Endianness byteOrder()
const;
50 void byteOrder(ByteOrder::Endianness);
54 virtual SharedMemoryCallbackPtr instanceFromFactory(
const AddressInterval&,
const Yaml::Node &config)
const override;
55 virtual void handlePreSharedMemory(SharedMemoryContext&)
override;
56 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.