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

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