1 //===-- RegisterContextPOSIXCore_arm.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_arm_h_ 11 #define liblldb_RegisterContextCorePOSIX_arm_h_ 12 13 #include "Plugins/Process/Utility/RegisterContextPOSIX_arm.h" 14 #include "Plugins/Process/elf-core/RegisterUtilities.h" 15 #include "lldb/Utility/DataBufferHeap.h" 16 #include "lldb/Utility/DataExtractor.h" 17 18 class RegisterContextCorePOSIX_arm : public RegisterContextPOSIX_arm { 19 public: 20 RegisterContextCorePOSIX_arm( 21 lldb_private::Thread &thread, 22 lldb_private::RegisterInfoInterface *register_info, 23 const lldb_private::DataExtractor &gpregset, 24 llvm::ArrayRef<lldb_private::CoreNote> notes); 25 26 ~RegisterContextCorePOSIX_arm() override; 27 28 bool ReadRegister(const lldb_private::RegisterInfo *reg_info, 29 lldb_private::RegisterValue &value) override; 30 31 bool WriteRegister(const lldb_private::RegisterInfo *reg_info, 32 const lldb_private::RegisterValue &value) override; 33 34 bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override; 35 36 bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override; 37 38 bool HardwareSingleStep(bool enable) override; 39 40 protected: 41 bool ReadGPR() override; 42 43 bool ReadFPR() override; 44 45 bool WriteGPR() override; 46 47 bool WriteFPR() override; 48 49 private: 50 lldb::DataBufferSP m_gpr_buffer; 51 lldb_private::DataExtractor m_gpr; 52 }; 53 54 #endif // liblldb_RegisterContextCorePOSIX_arm_h_ 55