1 //===-- RegisterContextMacOSXFrameBackchain.h -------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 #ifndef lldb_RegisterContextMacOSXFrameBackchain_h_
11 #define lldb_RegisterContextMacOSXFrameBackchain_h_
15 // Other libraries and framework includes
17 #include "lldb/lldb-private.h"
18 #include "lldb/Target/RegisterContext.h"
20 #include "UnwindMacOSXFrameBackchain.h"
22 class RegisterContextMacOSXFrameBackchain : public lldb_private::RegisterContext
25 //------------------------------------------------------------------
26 // Constructors and Destructors
27 //------------------------------------------------------------------
28 RegisterContextMacOSXFrameBackchain (lldb_private::Thread &thread,
29 uint32_t concrete_frame_idx,
30 const UnwindMacOSXFrameBackchain::Cursor &cursor);
33 ~RegisterContextMacOSXFrameBackchain ();
35 //------------------------------------------------------------------
36 // Subclasses must override these functions
37 //------------------------------------------------------------------
39 InvalidateAllRegisters ();
44 virtual const lldb_private::RegisterInfo *
45 GetRegisterInfoAtIndex (size_t reg);
48 GetRegisterSetCount ();
50 virtual const lldb_private::RegisterSet *
51 GetRegisterSet (size_t reg_set);
54 ReadRegister (const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value);
57 WriteRegister (const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value);
60 ReadAllRegisterValues (lldb::DataBufferSP &data_sp);
63 WriteAllRegisterValues (const lldb::DataBufferSP &data_sp);
66 ConvertRegisterKindToRegisterNumber (uint32_t kind, uint32_t num);
69 UnwindMacOSXFrameBackchain::Cursor m_cursor;
70 bool m_cursor_is_valid;
71 //------------------------------------------------------------------
72 // For RegisterContextMacOSXFrameBackchain only
73 //------------------------------------------------------------------
74 DISALLOW_COPY_AND_ASSIGN (RegisterContextMacOSXFrameBackchain);
77 #endif // lldb_RegisterContextMacOSXFrameBackchain_h_