1//===-- RegisterContextPOSIXCore_riscv64.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 LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_REGISTERCONTEXTPOSIXCORE_RISCV64_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_REGISTERCONTEXTPOSIXCORE_RISCV64_H
11
12#include "Plugins/Process/Utility/RegisterContextPOSIX_riscv64.h"
13#include "Plugins/Process/Utility/RegisterInfoPOSIX_riscv64.h"
14
15#include "Plugins/Process/elf-core/RegisterUtilities.h"
16#include "lldb/Target/Thread.h"
17#include "lldb/Utility/DataExtractor.h"
18#include "lldb/Utility/RegisterValue.h"
19
20#include <memory>
21
22class RegisterContextCorePOSIX_riscv64 : public RegisterContextPOSIX_riscv64 {
23public:
24 static std::unique_ptr<RegisterContextCorePOSIX_riscv64>
25 Create(lldb_private::Thread &thread, const lldb_private::ArchSpec &arch,
26 const lldb_private::DataExtractor &gpregset,
27 llvm::ArrayRef<lldb_private::CoreNote> notes);
28
29 ~RegisterContextCorePOSIX_riscv64() override;
30
31 bool ReadRegister(const lldb_private::RegisterInfo *reg_info,
32 lldb_private::RegisterValue &value) override;
33
34 bool WriteRegister(const lldb_private::RegisterInfo *reg_info,
35 const lldb_private::RegisterValue &value) override;
36
37protected:
38 RegisterContextCorePOSIX_riscv64(
39 lldb_private::Thread &thread,
40 std::unique_ptr<RegisterInfoPOSIX_riscv64> register_info,
41 const lldb_private::DataExtractor &gpregset,
42 llvm::ArrayRef<lldb_private::CoreNote> notes);
43
44 bool ReadGPR() override;
45
46 bool ReadFPR() override;
47
48 bool WriteGPR() override;
49
50 bool WriteFPR() override;
51
52private:
53 lldb_private::DataExtractor m_gpr;
54 lldb_private::DataExtractor m_fpr;
55};
56
57#endif // LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_REGISTERCONTEXTPOSIXCORE_RISCV64_H
58

source code of lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_riscv64.h