1314564Sdim//===-- RegisterContextPOSIXCore_s390x.h ------------------------*- C++ -*-===// 2303241Sdim// 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 6303241Sdim// 7303241Sdim//===----------------------------------------------------------------------===// 8303241Sdim 9303241Sdim#ifndef liblldb_RegisterContextCorePOSIX_s390x_h_ 10303241Sdim#define liblldb_RegisterContextCorePOSIX_s390x_h_ 11303241Sdim 12303241Sdim#include "Plugins/Process/Utility/RegisterContextPOSIX_s390x.h" 13327952Sdim#include "Plugins/Process/elf-core/RegisterUtilities.h" 14321369Sdim#include "lldb/Utility/DataExtractor.h" 15303241Sdim 16314564Sdimclass RegisterContextCorePOSIX_s390x : public RegisterContextPOSIX_s390x { 17303241Sdimpublic: 18314564Sdim RegisterContextCorePOSIX_s390x( 19314564Sdim lldb_private::Thread &thread, 20314564Sdim lldb_private::RegisterInfoInterface *register_info, 21314564Sdim const lldb_private::DataExtractor &gpregset, 22327952Sdim llvm::ArrayRef<lldb_private::CoreNote> notes); 23303241Sdim 24314564Sdim ~RegisterContextCorePOSIX_s390x() override; 25303241Sdim 26314564Sdim bool ReadRegister(const lldb_private::RegisterInfo *reg_info, 27314564Sdim lldb_private::RegisterValue &value) override; 28303241Sdim 29314564Sdim bool WriteRegister(const lldb_private::RegisterInfo *reg_info, 30314564Sdim const lldb_private::RegisterValue &value) override; 31303241Sdim 32314564Sdim bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override; 33303241Sdim 34314564Sdim bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override; 35303241Sdim 36314564Sdim bool HardwareSingleStep(bool enable) override; 37303241Sdim 38303241Sdimprotected: 39314564Sdim bool ReadGPR() override; 40303241Sdim 41314564Sdim bool ReadFPR() override; 42303241Sdim 43314564Sdim bool WriteGPR() override; 44303241Sdim 45314564Sdim bool WriteFPR() override; 46303241Sdim 47303241Sdimprivate: 48314564Sdim lldb::DataBufferSP m_gpr_buffer; 49314564Sdim lldb_private::DataExtractor m_gpr; 50303241Sdim 51314564Sdim lldb::DataBufferSP m_fpr_buffer; 52314564Sdim lldb_private::DataExtractor m_fpr; 53303241Sdim}; 54303241Sdim 55303241Sdim#endif // liblldb_RegisterContextCorePOSIX_s390x_h_ 56