ROSE  0.11.145.0
Classes | Typedefs | Enumerations | Functions
Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics Namespace Reference

Description

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  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

typedef Sawyer::SharedPointer< MergerMergerPtr
 Shared-ownership pointer for Merger classes. More...
 
typedef Sawyer::SharedPointer< SValueSValuePtr
 Shared-ownership pointer to a semantic value in any domain. More...
 
typedef boost::shared_ptr< RegisterStateRegisterStatePtr
 Shared-ownership pointer to a register state. More...
 
typedef boost::shared_ptr< MemoryStateMemoryStatePtr
 Shared-ownership pointer to a memory state. More...
 
typedef boost::shared_ptr< MemoryCellMemoryCellPtr
 Shared-ownership pointer to a memory cell. More...
 
typedef boost::shared_ptr< StateStatePtr
 Shared-ownership pointer to a semantic state. More...
 
typedef boost::shared_ptr< RiscOperatorsRiscOperatorsPtr
 Shared-ownership pointer to a RISC operators object. More...
 
typedef boost::shared_ptr< DispatcherDispatcherPtr
 Shared-ownership pointer to a semantics instruction dispatcher. More...
 
typedef Sawyer::Container::Set< InputOutputPropertyInputOutputPropertySet
 Set of Boolean properties. More...
 
using CellList = std::list< MemoryCellPtr >
 List of memory cells. More...
 
typedef boost::shared_ptr< class MemoryCellListMemoryCellListPtr
 Shared-ownership pointer to a list-based memory state. More...
 
typedef boost::shared_ptr< class MemoryCellMapMemoryCellMapPtr
 Shared-ownership pointer to a map-based memory state. More...
 
typedef boost::shared_ptr< class MemoryCellStateMemoryCellStatePtr
 Shared-ownership pointer to a cell-based memory state. More...
 
typedef boost::shared_ptr< class RegisterStateGenericRegisterStateGenericPtr
 Shared-ownership pointer to generic register states. More...
 
typedef boost::shared_ptr< class SymbolicMemorySymbolicMemoryPtr
 Shared-ownership pointer for symbolic memory state. More...
 

Enumerations

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 Exception &)
 
std::ostream & operator<< (std::ostream &, const MemoryCell &)
 
std::ostream & operator<< (std::ostream &, const MemoryCell::WithFormatter &)
 
std::ostream & operator<< (std::ostream &, const MemoryState &)
 
std::ostream & operator<< (std::ostream &, const MemoryState::WithFormatter &)
 
std::ostream & operator<< (std::ostream &, const RegisterState &)
 
std::ostream & operator<< (std::ostream &, const RegisterState::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 &)
 
template<class To , class From >
Sawyer::SharedPointer< To > dynamic_pointer_cast (const Sawyer::SharedPointer< From > &from)
 
std::ostream & operator<< (std::ostream &, const SValue &)
 
std::ostream & operator<< (std::ostream &, const SValue::WithFormatter &)
 

Typedef Documentation

Shared-ownership pointer for Merger classes.

Definition at line 36 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Shared-ownership pointer to a semantic value in any domain.

Definition at line 46 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Shared-ownership pointer to a register state.

Definition at line 49 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Shared-ownership pointer to a memory state.

Definition at line 52 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Shared-ownership pointer to a memory cell.

Definition at line 55 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Shared-ownership pointer to a semantic state.

Definition at line 58 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Shared-ownership pointer to a RISC operators object.

Definition at line 61 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Shared-ownership pointer to a semantics instruction dispatcher.

Definition at line 64 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

Set of Boolean properties.

Definition at line 92 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.

List of memory cells.

Definition at line 274 of file MemoryCell.h.

Shared-ownership pointer to a list-based memory state.

Definition at line 19 of file MemoryCellList.h.

Shared-ownership pointer to a map-based memory state.

Definition at line 21 of file MemoryCellMap.h.

Shared-ownership pointer to a cell-based memory state.

Definition at line 20 of file BaseSemantics/MemoryCellState.h.

Shared-ownership pointer to generic register states.

Definition at line 22 of file RegisterStateGeneric.h.

Shared-ownership pointer for symbolic memory state.

Definition at line 17 of file SymbolicMemory.h.

Enumeration Type Documentation

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.

Enumerator
IO_READ 

The location was read on behalf of an instruction.

IO_WRITE 

The location was written on behalf of an instruction.

IO_INIT 

The location was written without an instruction.

This typically happens during state initialization.

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.

IO_READ_UNINITIALIZED 

The location was read without having the IO_WRITE or IO_INIT property.

Definition at line 80 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.