1#ifndef ROSE_BinaryAnalysis_InstructionSemantics_BaseSemantics_BasicTypes_H
2#define ROSE_BinaryAnalysis_InstructionSemantics_BaseSemantics_BasicTypes_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
9#include <boost/serialization/shared_ptr.hpp>
10#include <boost/shared_ptr.hpp>
11#include <Sawyer/SharedPointer.h>
12#include <Sawyer/Set.h>
15namespace BinaryAnalysis {
16namespace InstructionSemantics {
Dispatches instructions through the RISC layer.
Represents one location in memory.
Represents all memory in the state.
Controls state merge operations.
A RegisterState for any architecture.
The set of all registers and their values.
Base class for most instruction semantics RISC operators.
Base class for semantic values.
Base class for semantics machine states.
Reference-counting intrusive smart pointer.
Base classes for instruction semantics.
Sawyer::SharedPointer< Merger > MergerPtr
Shared-ownership pointer for Merger classes.
boost::shared_ptr< RiscOperators > RiscOperatorsPtr
Shared-ownership pointer to a RISC operators object.
boost::shared_ptr< MemoryState > MemoryStatePtr
Shared-ownership pointer to a memory state.
boost::shared_ptr< MemoryCell > MemoryCellPtr
Shared-ownership pointer to a memory cell.
boost::shared_ptr< Dispatcher > DispatcherPtr
Shared-ownership pointer to a semantics instruction dispatcher.
InputOutputProperty
Boolean properties related to I/O.
@ IO_WRITE
The location was written on behalf of an instruction.
@ IO_READ_UNINITIALIZED
The location was read without having the IO_WRITE or IO_INIT property.
@ IO_INIT
The location was written without an instruction.
@ IO_READ
The location was read on behalf of an instruction.
@ IO_READ_BEFORE_WRITE
The location was read without having the IO_WRITE property.
@ IO_READ_AFTER_WRITE
The location was read after being written.
boost::shared_ptr< State > StatePtr
Shared-ownership pointer to a semantic state.
boost::shared_ptr< class RegisterStateGeneric > RegisterStateGenericPtr
Shared-ownership pointer to generic register states.
Sawyer::SharedPointer< SValue > SValuePtr
Shared-ownership pointer to a semantic value in any domain.
Sawyer::Container::Set< InputOutputProperty > InputOutputPropertySet
Set of Boolean properties.
boost::shared_ptr< RegisterState > RegisterStatePtr
Shared-ownership pointer to a register state.