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_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTREGISTERINFO_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTREGISTERINFO_H
11
12#include <memory>
13
14#include "RegisterInfoInterface.h"
15#include "lldb/Host/common/NativeRegisterContext.h"
16
17namespace lldb_private {
18class NativeRegisterContextRegisterInfo : public NativeRegisterContext {
19public:
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
36protected:
37 std::unique_ptr<RegisterInfoInterface> m_register_info_interface_up;
38};
39}
40#endif
41

source code of lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h