1 //===-- RegisterContextDummy.h ----------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef lldb_RegisterContextDummy_h_ 11 #define lldb_RegisterContextDummy_h_ 12 13 #include <vector> 14 15 #include "lldb/lldb-private.h" 16 #include "lldb/Target/RegisterContext.h" 17 #include "lldb/Symbol/SymbolContext.h" 18 19 namespace lldb_private { 20 21 class RegisterContextDummy : public lldb_private::RegisterContext 22 { 23 public: 24 typedef std::shared_ptr<RegisterContextDummy> SharedPtr; 25 26 RegisterContextDummy (Thread &thread, uint32_t concrete_frame_idx, uint32_t address_byte_size); 27 28 /// 29 // pure virtual functions from the base class that we must implement 30 /// 31 32 virtual 33 ~RegisterContextDummy (); 34 35 virtual void 36 InvalidateAllRegisters (); 37 38 virtual size_t 39 GetRegisterCount (); 40 41 virtual const lldb_private::RegisterInfo * 42 GetRegisterInfoAtIndex (size_t reg); 43 44 virtual size_t 45 GetRegisterSetCount (); 46 47 virtual const lldb_private::RegisterSet * 48 GetRegisterSet (size_t reg_set); 49 50 virtual bool 51 ReadRegister (const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value); 52 53 virtual bool 54 WriteRegister (const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value); 55 56 virtual bool 57 ReadAllRegisterValues (lldb::DataBufferSP &data_sp); 58 59 virtual bool 60 WriteAllRegisterValues (const lldb::DataBufferSP &data_sp); 61 62 virtual uint32_t 63 ConvertRegisterKindToRegisterNumber (uint32_t kind, uint32_t num); 64 65 private: 66 //------------------------------------------------------------------ 67 // For RegisterContextLLDB only 68 //------------------------------------------------------------------ 69 70 lldb_private::RegisterSet m_reg_set0; // register set 0 (PC only) 71 lldb_private::RegisterInfo m_pc_reg_info; 72 73 DISALLOW_COPY_AND_ASSIGN (RegisterContextDummy); 74 }; 75 } // namespace lldb_private 76 77 #endif // lldb_RegisterContextDummy_h_ 78