1#ifndef ROSE_BinaryAnalysis_Architecture_BasicTypes_H
2#define ROSE_BinaryAnalysis_Architecture_BasicTypes_H
3#include <featureTests.h>
4#ifdef ROSE_ENABLE_BINARY_ANALYSIS
6#include <Rose/BinaryAnalysis/Architecture/Exception.h>
7#include <Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h>
12#include <Sawyer/Message.h>
13#include <Sawyer/Result.h>
14#include <boost/filesystem.hpp>
23namespace BinaryAnalysis {
143template<
class Iterator>
145 for (; begin != end; ++begin)
240const std::string& name(
size_t registrationId);
Base class for architecture definitions.
Architecture-specific information for the Common Intermediate Language.
Architecture specific information for Intel 80286.
Architecture-specific information for Intel 8086.
Architecture-specific information for Intel 8088.
Architecture-specific information for Intel i386.
Architecture-specific information for Intel i486.
Architecture-specific information for Intel Pentium4.
Architecture-specific information for Intel Pentium.
Architecture-specific information for Intel Pentium II.
Architecture-specific information for Intel Pentium III.
Architecture-specific information for the Java virtual machine.
Architecture-specific information for MIPS with 32-bit word size.
Architecture-specific information for Motorola 68040'.
Base class for Motorola processors.
Architecture-specific information for NXP ColdFire'.
Architecture-specific information for PowerPC with 32-bit word size.
Architecture-specific information for PowerPC with 64-bit word size.
Base class for PowerPC architectures.
Common base class for all x86 architectures.
Result containing a value or an error.
Represents an interpretation of a binary container.
std::shared_ptr< Base > BasePtr
Reference counted pointer for Architecture::Base.
std::shared_ptr< ArmAarch32 > ArmAarch32Ptr
Reference counted pointer for ArmAarch32.
Sawyer::Result< BasePtr, NotFound > findByInterpretation(SgAsmInterpretation *)
Finds a suitable architecture for a binary interpretation.
std::pair< BasePtr, size_t > findBestByInterpretation(SgAsmInterpretation *)
Finds the architecture that matches the most file headers.
std::set< std::string > registeredNames()
Names of all registered architectures.
Sawyer::Message::Facility mlog
Diagnostic facility for architecture definitions.
InstructionSemantics::BaseSemantics::DispatcherPtr newInstructionDispatcher(const std::string &name, const InstructionSemantics::BaseSemantics::RiscOperatorsPtr &)
Create a new instruction dispatcher by name.
std::shared_ptr< IntelPentiumiii > IntelPentiumiiiPtr
Reference counted pointer for IntelPentiumiii.
std::shared_ptr< X86 > X86Ptr
Reference counted pointer for X86.
std::shared_ptr< Motorola68040 > Motorola68040Ptr
Reference counted pointer for Motorola68040.
std::shared_ptr< ArmAarch64 > ArmAarch64Ptr
Reference counted pointer for ArmAarch64.
std::shared_ptr< Amd64 > Amd64Ptr
Reference counted pointer for Amd64.
std::shared_ptr< Powerpc > PowerpcPtr
Reference counted pointer for Powerpc.
std::vector< BasePtr > registeredDefinitions()
Registered architectures.
size_t registerDefinition(const BasePtr &)
Register a new architecture definition.
void registerDefinitions(Iterator begin, Iterator end)
Register definitions from shared libraries.
std::shared_ptr< Intel8088 > Intel8088Ptr
Reference counted pointer for Intel8088.
std::shared_ptr< IntelPentium > IntelPentiumPtr
Reference counted pointer for IntelPentium.
std::shared_ptr< Intel80286 > Intel80286Ptr
Reference counted pointer for Intel80286.
std::shared_ptr< Mips32 > Mips32Ptr
Reference counted pointer for Mips32.
std::shared_ptr< NxpColdfire > NxpColdfirePtr
Reference counted pointer for NxpColdfire.
std::shared_ptr< const Base > BaseConstPtr
Reference counted pointer for Architecture::Base.
Sawyer::Result< BasePtr, NotFound > findByHeader(SgAsmGenericHeader *)
Finds a suitable architecture for a file header.
std::shared_ptr< Cil > CilPtr
Reference counted pointer for Cil.
std::shared_ptr< IntelPentium4 > IntelPentium4Ptr
Reference counted pointer for IntelPentium4.
bool deregisterDefinition(const BasePtr &)
Remove the specified architecture from the list of registered architectures.
Sawyer::Result< BasePtr, NotFound > findByName(const std::string &)
Look up a new architecture by name.
std::shared_ptr< IntelI386 > IntelI386Ptr
Reference counted pointer for IntelI386.
Sawyer::Result< BasePtr, NotFound > findById(size_t)
Look up a new architecture by registration ID.
void initDiagnostics()
Initialize and registers architecture diagnostic streams.
std::shared_ptr< IntelI486 > IntelI486Ptr
Reference counted pointer for IntelI486.
std::shared_ptr< Powerpc32 > Powerpc32Ptr
Reference counted pointer for Powerpc32.
std::shared_ptr< Jvm > JvmPtr
Reference counted pointer for Jvm.
std::shared_ptr< Powerpc64 > Powerpc64Ptr
Reference counted pointer for Powerpc64.
std::shared_ptr< Intel8086 > Intel8086Ptr
Reference counted pointer for Intel8086.
std::shared_ptr< Motorola > MotorolaPtr
Reference counted pointer for Motorola.
std::shared_ptr< IntelPentiumii > IntelPentiumiiPtr
Reference counted pointer for IntelPentiumii.
boost::shared_ptr< RiscOperators > RiscOperatorsPtr
Shared-ownership pointer to a RISC operators object.
boost::shared_ptr< Dispatcher > DispatcherPtr
Shared-ownership pointer to a semantics instruction dispatcher.
const char * Architecture(int64_t)
Convert Rose::BinaryAnalysis::Disassembler::Mips::Decoder::Architecture enum constant to a string.