1 //===-- NativeRegisterContextRegisterInfo.h ---------------------*- C++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 #ifndef LLDB_PLUGINS_PROCESS_UTIILTY_NATIVE_REGISTER_CONTEXT_REGISTER_INFO
10 #define LLDB_PLUGINS_PROCESS_UTIILTY_NATIVE_REGISTER_CONTEXT_REGISTER_INFO
14 #include "RegisterInfoInterface.h"
15 #include "lldb/Host/common/NativeRegisterContext.h"
17 namespace lldb_private {
18 class NativeRegisterContextRegisterInfo : public NativeRegisterContext {
21 /// Construct a NativeRegisterContextRegisterInfo, taking ownership
22 /// of the register_info_interface pointer.
24 NativeRegisterContextRegisterInfo(
25 NativeThreadProtocol &thread,
26 RegisterInfoInterface *register_info_interface);
28 uint32_t GetRegisterCount() const override;
30 uint32_t GetUserRegisterCount() const override;
32 const RegisterInfo *GetRegisterInfoAtIndex(uint32_t reg_index) const override;
34 const RegisterInfoInterface &GetRegisterInfoInterface() const;
37 std::unique_ptr<RegisterInfoInterface> m_register_info_interface_up;