Debugger: Split into core library and application.
[haiku.git] / src / kits / debugger / dwarf / DwarfTargetInterface.h
blobb92b73f35dabf5bc9fc651ae6004bd0ba0e82ac0
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
9 #include <Referenceable.h>
10 #include <Variant.h>
12 #include "Types.h"
15 class CfaContext;
16 class Register;
19 class DwarfTargetInterface : public BReferenceable {
20 public:
21 virtual ~DwarfTargetInterface();
23 virtual uint32 CountRegisters() const = 0;
24 virtual uint32 RegisterValueType(uint32 index) const = 0;
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;
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;
47 #endif // DWARF_TARGET_INTERFACE_H