ROSE 0.11.145.192
|
Base classes for instruction semantics.
Basically, anything that is common to two or more instruction semantic domains will be factored out and placed in this name space.
Classes | |
class | AddressSpace |
Base class for address spaces. More... | |
class | AddressSpaceAddress |
Addresses for base address space. More... | |
class | Dispatcher |
Dispatches instructions through the RISC layer. More... | |
class | Exception |
Base class for exceptions thrown by instruction semantics. More... | |
class | Formatter |
Format for printing things. More... | |
class | Indent |
Adjusts a Formatter for one additional level of indentation. More... | |
class | InsnProcessor |
Functor that knows how to dispatch a single kind of instruction. More... | |
class | MemoryCell |
Represents one location in memory. More... | |
class | MemoryCellList |
Simple list-based memory state. More... | |
class | MemoryCellMap |
Simple map-based memory state. More... | |
class | MemoryCellState |
Cell-based memory state. More... | |
class | MemoryState |
Represents all memory in the state. More... | |
class | Merger |
Controls state merge operations. More... | |
class | NotImplemented |
class | RegisterState |
The set of all registers and their values. More... | |
class | RegisterStateGeneric |
A RegisterState for any architecture. More... | |
class | RiscOperators |
Base class for most instruction semantics RISC operators. More... | |
class | State |
Base class for semantics machine states. More... | |
class | SValue |
Base class for semantic values. More... | |
class | SymbolicMemory |
Purely symbolic memory state. More... | |
Typedefs | |
using | AddressSpacePtr = boost::shared_ptr< AddressSpace > |
Shared-ownership pointer for AddressSpace objects. | |
typedef Sawyer::SharedPointer< Merger > | MergerPtr |
Shared-ownership pointer for Merger classes. | |
typedef Sawyer::SharedPointer< SValue > | SValuePtr |
Shared-ownership pointer to a semantic value in any domain. | |
typedef boost::shared_ptr< RegisterState > | RegisterStatePtr |
Shared-ownership pointer to a register state. | |
typedef boost::shared_ptr< class RegisterStateGeneric > | RegisterStateGenericPtr |
Shared-ownership pointer to generic register states. | |
typedef boost::shared_ptr< MemoryState > | MemoryStatePtr |
Shared-ownership pointer to a memory state. | |
typedef boost::shared_ptr< MemoryCell > | MemoryCellPtr |
Shared-ownership pointer to a memory cell. | |
typedef boost::shared_ptr< State > | StatePtr |
Shared-ownership pointer to a semantic state. | |
typedef boost::shared_ptr< class MemoryCellState > | MemoryCellStatePtr |
Shared-ownership pointer to a cell-based memory state. | |
typedef boost::shared_ptr< RiscOperators > | RiscOperatorsPtr |
Shared-ownership pointer to a RISC operators object. | |
typedef boost::shared_ptr< Dispatcher > | DispatcherPtr |
Shared-ownership pointer to a semantics instruction dispatcher. | |
typedef Sawyer::Container::Set< InputOutputProperty > | InputOutputPropertySet |
Set of Boolean properties. | |
using | CellList = std::list< MemoryCellPtr > |
List of memory cells. | |
typedef boost::shared_ptr< class MemoryCellList > | MemoryCellListPtr |
Shared-ownership pointer to a list-based memory state. | |
typedef boost::shared_ptr< class MemoryCellMap > | MemoryCellMapPtr |
Shared-ownership pointer to a map-based memory state. | |
using | SymbolicMemoryPtr = boost::shared_ptr< class SymbolicMemory > |
Shared-ownership pointer for symbolic memory state. | |
Enumerations | |
enum class | AddressSpacePurpose { REGISTERS , MEMORY , INTERRUPTS , USER , UNSPECIFIED } |
Purpose that an address space serves. More... | |
enum | InputOutputProperty { IO_READ , IO_WRITE , IO_INIT , IO_READ_BEFORE_WRITE , IO_READ_AFTER_WRITE , IO_READ_UNINITIALIZED } |
Boolean properties related to I/O. More... | |
Functions | |
std::ostream & | operator<< (std::ostream &, const AddressSpace &) |
std::ostream & | operator<< (std::ostream &, const AddressSpace::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const Exception &) |
std::ostream & | operator<< (std::ostream &, const MemoryCell &) |
std::ostream & | operator<< (std::ostream &, const MemoryCell::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const RiscOperators &) |
std::ostream & | operator<< (std::ostream &, const RiscOperators::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const State &) |
std::ostream & | operator<< (std::ostream &, const State::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const SValue &) |
std::ostream & | operator<< (std::ostream &, const SValue::WithFormatter &) |
using Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::AddressSpacePtr = typedef boost::shared_ptr<AddressSpace> |
Shared-ownership pointer for AddressSpace objects.
Definition at line 47 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef Sawyer::SharedPointer<Merger> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MergerPtr |
Shared-ownership pointer for Merger classes.
Definition at line 50 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef Sawyer::SharedPointer<SValue> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::SValuePtr |
Shared-ownership pointer to a semantic value in any domain.
Definition at line 53 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<RegisterState> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RegisterStatePtr |
Shared-ownership pointer to a register state.
Definition at line 56 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<class RegisterStateGeneric> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RegisterStateGenericPtr |
Shared-ownership pointer to generic register states.
Definition at line 59 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<MemoryState> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryStatePtr |
Shared-ownership pointer to a memory state.
Definition at line 62 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<MemoryCell> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellPtr |
Shared-ownership pointer to a memory cell.
Definition at line 65 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<State> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::StatePtr |
Shared-ownership pointer to a semantic state.
Definition at line 68 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<class MemoryCellState> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellStatePtr |
Shared-ownership pointer to a cell-based memory state.
Definition at line 71 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<RiscOperators> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RiscOperatorsPtr |
Shared-ownership pointer to a RISC operators object.
Definition at line 74 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<Dispatcher> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::DispatcherPtr |
Shared-ownership pointer to a semantics instruction dispatcher.
Definition at line 77 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef Sawyer::Container::Set<InputOutputProperty> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::InputOutputPropertySet |
Set of Boolean properties.
Definition at line 114 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
using Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::CellList = typedef std::list<MemoryCellPtr> |
List of memory cells.
Definition at line 276 of file MemoryCell.h.
typedef boost::shared_ptr<class MemoryCellList> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellListPtr |
Shared-ownership pointer to a list-based memory state.
Definition at line 19 of file MemoryCellList.h.
typedef boost::shared_ptr<class MemoryCellMap> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellMapPtr |
Shared-ownership pointer to a map-based memory state.
Definition at line 20 of file MemoryCellMap.h.
using Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::SymbolicMemoryPtr = typedef boost::shared_ptr<class SymbolicMemory> |
Shared-ownership pointer for symbolic memory state.
Definition at line 17 of file SymbolicMemory.h.
Purpose that an address space serves.
Enumerator | |
---|---|
REGISTERS | Stores register values indexed by RegisterDescriptor. |
MEMORY | Stores memory values indexed by address. |
INTERRUPTS | Stores interrupt states indexed by interrupt. |
USER | User defined address space. |
UNSPECIFIED | Purpose for default-constructed address spaces. |
Definition at line 84 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
Boolean properties related to I/O.
These Boolean properties keep track of whether a value was read from and/or written to a register or memory state. Each state implementation has different capabilities, so see the implementation for details. In short, RegisterStateGeneric tracks these properties per bit of each register while memory states generally track them on a byte-by-byte basis.
Although the register and memory state objects provide the data members for storing this information, the properties are generally manipulated by higher layers such as the readRegister
, writeRegister
, readMemory
, and writeMemory
methods in a RiscOperators implementation.
Definition at line 102 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.