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