1//===-- RegisterContextPOSIXCore_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_ELF_CORE_REGISTERCONTEXTPOSIXCORE_X86_64_H 10#define LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_REGISTERCONTEXTPOSIXCORE_X86_64_H 11 12#include "Plugins/Process/Utility/RegisterContextPOSIX_x86.h" 13#include "Plugins/Process/elf-core/RegisterUtilities.h" 14 15class RegisterContextCorePOSIX_x86_64 : public RegisterContextPOSIX_x86 { 16public: 17 RegisterContextCorePOSIX_x86_64( 18 lldb_private::Thread &thread, 19 lldb_private::RegisterInfoInterface *register_info, 20 const lldb_private::DataExtractor &gpregset, 21 llvm::ArrayRef<lldb_private::CoreNote> notes); 22 23 bool ReadRegister(const lldb_private::RegisterInfo *reg_info, 24 lldb_private::RegisterValue &value) override; 25 26 bool WriteRegister(const lldb_private::RegisterInfo *reg_info, 27 const lldb_private::RegisterValue &value) override; 28 29 bool ReadAllRegisterValues(lldb::WritableDataBufferSP &data_sp) override; 30 31 bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override; 32 33 bool HardwareSingleStep(bool enable) override; 34 35protected: 36 bool ReadGPR() override; 37 38 bool ReadFPR() override; 39 40 bool WriteGPR() override; 41 42 bool WriteFPR() override; 43 44private: 45 std::unique_ptr<uint8_t[]> m_gpregset; 46 std::unique_ptr<uint8_t[]> m_fpregset; 47}; 48 49#endif // LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_REGISTERCONTEXTPOSIXCORE_X86_64_H 50