1 //===-- RegisterContextPOSIXCore_x86_64.h -----------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef liblldb_RegisterContextCorePOSIX_x86_64_h_ 11 #define liblldb_RegisterContextCorePOSIX_x86_64_h_ 12 13 #include "Plugins/Process/Utility/RegisterContextPOSIX_x86.h" 14 #include "Plugins/Process/elf-core/RegisterUtilities.h" 15 16 class RegisterContextCorePOSIX_x86_64 : public RegisterContextPOSIX_x86 { 17 public: 18 RegisterContextCorePOSIX_x86_64( 19 lldb_private::Thread &thread, 20 lldb_private::RegisterInfoInterface *register_info, 21 const lldb_private::DataExtractor &gpregset, 22 llvm::ArrayRef<lldb_private::CoreNote> notes); 23 24 bool ReadRegister(const lldb_private::RegisterInfo *reg_info, 25 lldb_private::RegisterValue &value) override; 26 27 bool WriteRegister(const lldb_private::RegisterInfo *reg_info, 28 const lldb_private::RegisterValue &value) override; 29 30 bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override; 31 32 bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override; 33 34 bool HardwareSingleStep(bool enable) override; 35 36 protected: 37 bool ReadGPR() override; 38 39 bool ReadFPR() override; 40 41 bool WriteGPR() override; 42 43 bool WriteFPR() override; 44 45 private: 46 std::unique_ptr<uint8_t[]> m_gpregset; 47 std::unique_ptr<uint8_t[]> m_fpregset; 48 }; 49 50 #endif // liblldb_RegisterContextCorePOSIX_x86_64_h_ 51