1//===-- RegisterContextLinux_x86_64.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_REGISTERCONTEXTLINUX_X86_64_H 10#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTLINUX_X86_64_H 11 12#include "RegisterInfoInterface.h" 13 14class RegisterContextLinux_x86_64 : public lldb_private::RegisterInfoInterface { 15public: 16 RegisterContextLinux_x86_64(const lldb_private::ArchSpec &target_arch); 17 18 size_t GetGPRSize() const override; 19 20 const lldb_private::RegisterInfo *GetRegisterInfo() const override; 21 22 uint32_t GetRegisterCount() const override; 23 24 uint32_t GetUserRegisterCount() const override; 25 26 const std::vector<lldb_private::RegisterInfo> * 27 GetDynamicRegisterInfoP() const override; 28 29private: 30 const lldb_private::RegisterInfo *m_register_info_p; 31 uint32_t m_register_info_count; 32 uint32_t m_user_register_count; 33 std::vector<lldb_private::RegisterInfo> d_register_infos; 34}; 35 36#endif 37