1314564Sdim//===-- RegisterContextPOSIXCore_mips64.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_mips64_h_
10296417Sdim#define liblldb_RegisterContextCorePOSIX_mips64_h_
11257752Semaste
12314564Sdim#include "Plugins/Process/Utility/RegisterContextPOSIX_mips64.h"
13327952Sdim#include "Plugins/Process/elf-core/RegisterUtilities.h"
14321369Sdim#include "lldb/Utility/DataBufferHeap.h"
15321369Sdim#include "lldb/Utility/DataExtractor.h"
16257752Semaste
17314564Sdimclass RegisterContextCorePOSIX_mips64 : public RegisterContextPOSIX_mips64 {
18257752Semastepublic:
19314564Sdim  RegisterContextCorePOSIX_mips64(
20314564Sdim      lldb_private::Thread &thread,
21314564Sdim      lldb_private::RegisterInfoInterface *register_info,
22314564Sdim      const lldb_private::DataExtractor &gpregset,
23327952Sdim      llvm::ArrayRef<lldb_private::CoreNote> notes);
24257752Semaste
25314564Sdim  ~RegisterContextCorePOSIX_mips64() override;
26257752Semaste
27314564Sdim  bool ReadRegister(const lldb_private::RegisterInfo *reg_info,
28314564Sdim                    lldb_private::RegisterValue &value) override;
29257752Semaste
30314564Sdim  bool WriteRegister(const lldb_private::RegisterInfo *reg_info,
31314564Sdim                     const lldb_private::RegisterValue &value) override;
32257752Semaste
33314564Sdim  bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
34257752Semaste
35314564Sdim  bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
36257752Semaste
37314564Sdim  bool HardwareSingleStep(bool enable) override;
38257752Semaste
39257752Semasteprotected:
40314564Sdim  bool ReadGPR() override;
41257752Semaste
42314564Sdim  bool ReadFPR() override;
43257752Semaste
44314564Sdim  bool WriteGPR() override;
45257752Semaste
46314564Sdim  bool WriteFPR() override;
47257752Semaste
48257752Semasteprivate:
49314564Sdim  lldb::DataBufferSP m_gpr_buffer;
50321369Sdim  lldb::DataBufferSP m_fpr_buffer;
51314564Sdim  lldb_private::DataExtractor m_gpr;
52321369Sdim  lldb_private::DataExtractor m_fpr;
53257752Semaste};
54257752Semaste
55296417Sdim#endif // liblldb_RegisterContextCorePOSIX_mips64_h_
56