1 /* 2 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de. 3 * Copyright 2011, Rene Gollent, rene@gollent.com. 4 * Distributed under the terms of the MIT License. 5 */ 6 #ifndef CPU_STATE_H 7 #define CPU_STATE_H 8 9 #include <OS.h> 10 11 #include <Referenceable.h> 12 #include <Variant.h> 13 14 #include "Types.h" 15 16 17 class Register; 18 19 20 class CpuState : public BReferenceable { 21 public: 22 virtual ~CpuState(); 23 24 virtual status_t Clone(CpuState*& _clone) const = 0; 25 26 virtual status_t UpdateDebugState(void* state, size_t size) 27 const = 0; 28 29 virtual target_addr_t InstructionPointer() const = 0; 30 virtual void SetInstructionPointer( 31 target_addr_t address) = 0; 32 33 virtual target_addr_t StackFramePointer() const = 0; 34 virtual target_addr_t StackPointer() const = 0; 35 virtual bool GetRegisterValue(const Register* reg, 36 BVariant& _value) const = 0; 37 virtual bool SetRegisterValue(const Register* reg, 38 const BVariant& value) = 0; 39 40 }; 41 42 43 #endif // CPU_STATE_H 44