]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h
Merge ^/vendor/llvm-project/release-10.x up to its last change (upstream
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / source / Plugins / Process / Utility / NativeRegisterContextRegisterInfo.h
1 //===-- NativeRegisterContextRegisterInfo.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 LLDB_PLUGINS_PROCESS_UTIILTY_NATIVE_REGISTER_CONTEXT_REGISTER_INFO
10 #define LLDB_PLUGINS_PROCESS_UTIILTY_NATIVE_REGISTER_CONTEXT_REGISTER_INFO
11
12 #include <memory>
13
14 #include "RegisterInfoInterface.h"
15 #include "lldb/Host/common/NativeRegisterContext.h"
16
17 namespace lldb_private {
18 class NativeRegisterContextRegisterInfo : public NativeRegisterContext {
19 public:
20   ///
21   /// Construct a NativeRegisterContextRegisterInfo, taking ownership
22   /// of the register_info_interface pointer.
23   ///
24   NativeRegisterContextRegisterInfo(
25       NativeThreadProtocol &thread,
26       RegisterInfoInterface *register_info_interface);
27
28   uint32_t GetRegisterCount() const override;
29
30   uint32_t GetUserRegisterCount() const override;
31
32   const RegisterInfo *GetRegisterInfoAtIndex(uint32_t reg_index) const override;
33
34   const RegisterInfoInterface &GetRegisterInfoInterface() const;
35
36 private:
37   std::unique_ptr<RegisterInfoInterface> m_register_info_interface_up;
38 };
39 }
40 #endif