1314564Sdim//===-- RegisterContextPOSIXCore_x86_64.h -----------------------*- C++ -*-===// 2257752Semaste// 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 6257752Semaste// 7296417Sdim//===----------------------------------------------------------------------===// 8257752Semaste 9296417Sdim#ifndef liblldb_RegisterContextCorePOSIX_x86_64_h_ 10296417Sdim#define liblldb_RegisterContextCorePOSIX_x86_64_h_ 11257752Semaste 12276479Sdim#include "Plugins/Process/Utility/RegisterContextPOSIX_x86.h" 13327952Sdim#include "Plugins/Process/elf-core/RegisterUtilities.h" 14257752Semaste 15314564Sdimclass RegisterContextCorePOSIX_x86_64 : public RegisterContextPOSIX_x86 { 16257752Semastepublic: 17314564Sdim RegisterContextCorePOSIX_x86_64( 18314564Sdim lldb_private::Thread &thread, 19314564Sdim lldb_private::RegisterInfoInterface *register_info, 20314564Sdim const lldb_private::DataExtractor &gpregset, 21327952Sdim llvm::ArrayRef<lldb_private::CoreNote> notes); 22257752Semaste 23314564Sdim bool ReadRegister(const lldb_private::RegisterInfo *reg_info, 24314564Sdim lldb_private::RegisterValue &value) override; 25257752Semaste 26314564Sdim bool WriteRegister(const lldb_private::RegisterInfo *reg_info, 27314564Sdim const lldb_private::RegisterValue &value) override; 28257752Semaste 29314564Sdim bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override; 30257752Semaste 31314564Sdim bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override; 32257752Semaste 33314564Sdim bool HardwareSingleStep(bool enable) override; 34257752Semaste 35257752Semasteprotected: 36314564Sdim bool ReadGPR() override; 37257752Semaste 38314564Sdim bool ReadFPR() override; 39257752Semaste 40314564Sdim bool WriteGPR() override; 41257752Semaste 42314564Sdim bool WriteFPR() override; 43257752Semaste 44257752Semasteprivate: 45314564Sdim std::unique_ptr<uint8_t[]> m_gpregset; 46314564Sdim std::unique_ptr<uint8_t[]> m_fpregset; 47257752Semaste}; 48257752Semaste 49296417Sdim#endif // liblldb_RegisterContextCorePOSIX_x86_64_h_ 50