1//===-- RegisterContextPOSIXCore_powerpc.h ----------------------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef liblldb_RegisterContextCorePOSIX_powerpc_h_
10#define liblldb_RegisterContextCorePOSIX_powerpc_h_
11
12#include "Plugins/Process/Utility/RegisterContextPOSIX_powerpc.h"
13#include "Plugins/Process/elf-core/RegisterUtilities.h"
14#include "lldb/Utility/DataExtractor.h"
15
16class RegisterContextCorePOSIX_powerpc : public RegisterContextPOSIX_powerpc {
17public:
18  RegisterContextCorePOSIX_powerpc(
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  ~RegisterContextCorePOSIX_powerpc() override;
25
26  bool ReadRegister(const lldb_private::RegisterInfo *reg_info,
27                    lldb_private::RegisterValue &value) override;
28
29  bool WriteRegister(const lldb_private::RegisterInfo *reg_info,
30                     const lldb_private::RegisterValue &value) override;
31
32  bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override;
33
34  bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;
35
36  bool HardwareSingleStep(bool enable) override;
37
38protected:
39  bool ReadGPR() override;
40
41  bool ReadFPR() override;
42
43  bool ReadVMX() override;
44
45  bool WriteGPR() override;
46
47  bool WriteFPR() override;
48
49  bool WriteVMX() override;
50
51private:
52  lldb::DataBufferSP m_gpr_buffer;
53  lldb::DataBufferSP m_fpr_buffer;
54  lldb::DataBufferSP m_vec_buffer;
55  lldb_private::DataExtractor m_gpr;
56  lldb_private::DataExtractor m_fpr;
57  lldb_private::DataExtractor m_vec;
58};
59
60#endif // liblldb_RegisterContextCorePOSIX_powerpc_h_
61