LLDB  mainline
RegisterContextPOSIX_s390x.h
Go to the documentation of this file.
1 //===-- RegisterContextPOSIX_s390x.h ----------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef liblldb_RegisterContextPOSIX_s390x_h_
10 #define liblldb_RegisterContextPOSIX_s390x_h_
11 
12 #include "RegisterContext_s390x.h"
13 #include "RegisterInfoInterface.h"
16 #include "lldb/Utility/Log.h"
17 
18 class ProcessMonitor;
19 
21 public:
23  lldb_private::Thread &thread, uint32_t concrete_frame_idx,
25 
26  ~RegisterContextPOSIX_s390x() override;
27 
28  void Invalidate();
29 
30  void InvalidateAllRegisters() override;
31 
32  size_t GetRegisterCount() override;
33 
34  virtual unsigned GetRegisterSize(unsigned reg);
35 
36  virtual unsigned GetRegisterOffset(unsigned reg);
37 
38  const lldb_private::RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;
39 
40  size_t GetRegisterSetCount() override;
41 
42  const lldb_private::RegisterSet *GetRegisterSet(size_t set) override;
43 
44  const char *GetRegisterName(unsigned reg);
45 
47  uint32_t num) override;
48 
49 protected:
50  struct RegInfo {
54 
58  };
59 
61  std::unique_ptr<lldb_private::RegisterInfoInterface> m_register_info_up;
62 
63  virtual bool IsRegisterSetAvailable(size_t set_index);
64 
65  virtual const lldb_private::RegisterInfo *GetRegisterInfo();
66 
67  bool IsGPR(unsigned reg);
68 
69  bool IsFPR(unsigned reg);
70 
72 
73  virtual bool ReadGPR() = 0;
74  virtual bool ReadFPR() = 0;
75  virtual bool WriteGPR() = 0;
76  virtual bool WriteFPR() = 0;
77 };
78 
79 #endif // liblldb_RegisterContextPOSIX_s390x_h_
RegisterInfo interface to patch RegisterInfo structure for archs.
RegisterContextPOSIX_s390x(lldb_private::Thread &thread, uint32_t concrete_frame_idx, lldb_private::RegisterInfoInterface *register_info)
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
Manages communication with the inferior (debugee) process.
const char * GetRegisterName(unsigned reg)
virtual bool WriteGPR()=0
std::unique_ptr< lldb_private::RegisterInfoInterface > m_register_info_up
virtual unsigned GetRegisterSize(unsigned reg)
virtual unsigned GetRegisterOffset(unsigned reg)
virtual const lldb_private::RegisterInfo * GetRegisterInfo()
const lldb_private::RegisterSet * GetRegisterSet(size_t set) override
virtual bool ReadFPR()=0
virtual bool IsRegisterSetAvailable(size_t set_index)
virtual bool WriteFPR()=0
virtual bool ReadGPR()=0
const lldb_private::RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override