]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/tools/lldb/include/lldb/Target/NativeRegisterContextRegisterInfo.h
MFV r266995:
[FreeBSD/FreeBSD.git] / contrib / llvm / tools / lldb / include / lldb / Target / NativeRegisterContextRegisterInfo.h
1 //===-- NativeRegisterContextRegisterInfo.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_NativeRegisterContextRegisterInfo_h
11 #define lldb_NativeRegisterContextRegisterInfo_h
12
13 #include <memory>
14
15 #include "NativeRegisterContext.h"
16 #include "Plugins/Process/Utility/RegisterInfoInterface.h"
17
18 namespace lldb_private
19 {
20     class NativeRegisterContextRegisterInfo: public NativeRegisterContext
21     {
22     public:
23         ///
24         /// Construct a NativeRegisterContextRegisterInfo, taking ownership
25         /// of the register_info_interface pointer.
26         ///
27         NativeRegisterContextRegisterInfo (NativeThreadProtocol &thread,
28                                            uint32_t concrete_frame_idx,
29                                            RegisterInfoInterface *register_info_interface);
30
31         uint32_t
32         GetRegisterCount () const override;
33
34         const RegisterInfo *
35         GetRegisterInfoAtIndex (uint32_t reg_index) const override;
36
37         const RegisterInfoInterface&
38         GetRegisterInfoInterface () const;
39
40     private:
41         std::unique_ptr<RegisterInfoInterface> m_register_info_interface_up;
42     };
43 }
44 #endif