1/* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef DWARF_TARGET_INTERFACE_H 6#define DWARF_TARGET_INTERFACE_H 7 8 9#include <Referenceable.h> 10#include <Variant.h> 11 12#include "Types.h" 13 14 15class CfaContext; 16class Register; 17 18 19class DwarfTargetInterface : public BReferenceable { 20public: 21 virtual ~DwarfTargetInterface(); 22 23 virtual uint32 CountRegisters() const = 0; 24 virtual uint32 RegisterValueType(uint32 index) const = 0; 25 26 virtual bool GetRegisterValue(uint32 index, 27 BVariant& _value) const = 0; 28 virtual bool SetRegisterValue(uint32 index, 29 const BVariant& value) = 0; 30 virtual bool IsCalleePreservedRegister(uint32 index) const 31 = 0; 32 virtual status_t InitRegisterRules(CfaContext& context) const 33 = 0; 34 35 virtual bool ReadMemory(target_addr_t address, void* buffer, 36 size_t size) const = 0; 37 virtual bool ReadValueFromMemory(target_addr_t address, 38 uint32 valueType, BVariant& _value) const 39 = 0; 40 virtual bool ReadValueFromMemory(target_addr_t addressSpace, 41 target_addr_t address, 42 uint32 valueType, BVariant& _value) const 43 = 0; 44}; 45 46 47#endif // DWARF_TARGET_INTERFACE_H 48