41 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTREGISTERINFO_H10#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_NATIVEREGISTERCONTEXTREGISTERINFO_H11 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 ownership22 /// 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#endif41