/* * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. * Distributed under the terms of the MIT License. */ #ifndef DWARF_TARGET_INTERFACE_H #define DWARF_TARGET_INTERFACE_H #include #include #include "Types.h" class CfaContext; class Register; class DwarfTargetInterface : public BReferenceable { public: virtual ~DwarfTargetInterface(); virtual uint32 CountRegisters() const = 0; virtual uint32 RegisterValueType(uint32 index) const = 0; virtual bool GetRegisterValue(uint32 index, BVariant& _value) const = 0; virtual bool SetRegisterValue(uint32 index, const BVariant& value) = 0; virtual bool IsCalleePreservedRegister(uint32 index) const = 0; virtual status_t InitRegisterRules(CfaContext& context) const = 0; virtual bool ReadMemory(target_addr_t address, void* buffer, size_t size) const = 0; virtual bool ReadValueFromMemory(target_addr_t address, uint32 valueType, BVariant& _value) const = 0; virtual bool ReadValueFromMemory(target_addr_t addressSpace, target_addr_t address, uint32 valueType, BVariant& _value) const = 0; }; #endif // DWARF_TARGET_INTERFACE_H