Home | History | Annotate | Download | only in Utility
      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