ROSE 0.11.145.141
Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h
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
5#include <RoseFirst.h>
6
7// Basic types needed by almost all other instruction semantics layers
8
9#include <boost/serialization/shared_ptr.hpp>
10#include <boost/shared_ptr.hpp>
11#include <Sawyer/SharedPointer.h>
12#include <Sawyer/Set.h>
13
14namespace Rose {
15namespace BinaryAnalysis {
16namespace InstructionSemantics {
17
22namespace BaseSemantics {
23
25// Forward declarations
27
28// Documented where they're defined.
29class Formatter;
30class Merger;
31class SValue;
32class RegisterState;
34class MemoryCell;
35class MemoryState;
36class State;
37class RiscOperators;
38class Dispatcher;
39
41// Shared-ownership pointers
43
46
49
51typedef boost::shared_ptr<RegisterState> RegisterStatePtr;
52
54typedef boost::shared_ptr<class RegisterStateGeneric> RegisterStateGenericPtr;
55
57typedef boost::shared_ptr<MemoryState> MemoryStatePtr;
58
60typedef boost::shared_ptr<MemoryCell> MemoryCellPtr;
61
63typedef boost::shared_ptr<State> StatePtr;
64
66typedef boost::shared_ptr<RiscOperators> RiscOperatorsPtr;
67
69typedef boost::shared_ptr<Dispatcher> DispatcherPtr;
70
72// I/O Properties
74
95
98
99
100} // namespace
101} // namespace
102} // namespace
103} // namespace
104
105#endif
106#endif
Dispatches instructions through the RISC layer.
Definition Dispatcher.h:43
Base class for most instruction semantics RISC operators.
Base class for semantics machine states.
Definition State.h:41
Ordered set of values.
Definition Set.h:56
Reference-counting intrusive smart pointer.
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.
@ IO_READ_UNINITIALIZED
The location was read without having the IO_WRITE or IO_INIT property.
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.
The ROSE library.