1317027Sdim//===-- NativeRegisterContextRegisterInfo.h ---------------------*- C++ -*-===// 2317027Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6317027Sdim// 7317027Sdim//===----------------------------------------------------------------------===// 8317027Sdim 9317027Sdim#ifndef LLDB_PLUGINS_PROCESS_UTIILTY_NATIVE_REGISTER_CONTEXT_REGISTER_INFO 10317027Sdim#define LLDB_PLUGINS_PROCESS_UTIILTY_NATIVE_REGISTER_CONTEXT_REGISTER_INFO 11317027Sdim 12317027Sdim#include <memory> 13317027Sdim 14317027Sdim#include "RegisterInfoInterface.h" 15317027Sdim#include "lldb/Host/common/NativeRegisterContext.h" 16317027Sdim 17317027Sdimnamespace lldb_private { 18317027Sdimclass NativeRegisterContextRegisterInfo : public NativeRegisterContext { 19317027Sdimpublic: 20317027Sdim /// 21317027Sdim /// Construct a NativeRegisterContextRegisterInfo, taking ownership 22317027Sdim /// of the register_info_interface pointer. 23317027Sdim /// 24317027Sdim NativeRegisterContextRegisterInfo( 25327952Sdim NativeThreadProtocol &thread, 26317027Sdim RegisterInfoInterface *register_info_interface); 27317027Sdim 28317027Sdim uint32_t GetRegisterCount() const override; 29317027Sdim 30317027Sdim uint32_t GetUserRegisterCount() const override; 31317027Sdim 32317027Sdim const RegisterInfo *GetRegisterInfoAtIndex(uint32_t reg_index) const override; 33317027Sdim 34317027Sdim const RegisterInfoInterface &GetRegisterInfoInterface() const; 35317027Sdim 36317027Sdimprivate: 37317027Sdim std::unique_ptr<RegisterInfoInterface> m_register_info_interface_up; 38317027Sdim}; 39317027Sdim} 40317027Sdim#endif 41