1061da546Spatrick //===-- RegisterContextKDP_arm64.h --------------------------------*- C++
2061da546Spatrick //-*-===//
3061da546Spatrick //
4061da546Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5061da546Spatrick // See https://llvm.org/LICENSE.txt for license information.
6061da546Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7061da546Spatrick //
8061da546Spatrick //===----------------------------------------------------------------------===//
9061da546Spatrick 
10dda28197Spatrick #ifndef LLDB_SOURCE_PLUGINS_PROCESS_MACOSX_KERNEL_REGISTERCONTEXTKDP_ARM64_H
11dda28197Spatrick #define LLDB_SOURCE_PLUGINS_PROCESS_MACOSX_KERNEL_REGISTERCONTEXTKDP_ARM64_H
12061da546Spatrick 
13061da546Spatrick #include "Plugins/Process/Utility/RegisterContextDarwin_arm64.h"
14061da546Spatrick 
15061da546Spatrick class ThreadKDP;
16061da546Spatrick 
17061da546Spatrick class RegisterContextKDP_arm64 : public RegisterContextDarwin_arm64 {
18061da546Spatrick public:
19061da546Spatrick   RegisterContextKDP_arm64(ThreadKDP &thread, uint32_t concrete_frame_idx);
20061da546Spatrick 
21*f6aab3d8Srobert   ~RegisterContextKDP_arm64() override;
22061da546Spatrick 
23061da546Spatrick protected:
24be691f3bSpatrick   int DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) override;
25061da546Spatrick 
26be691f3bSpatrick   int DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) override;
27061da546Spatrick 
28be691f3bSpatrick   int DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) override;
29061da546Spatrick 
30be691f3bSpatrick   int DoReadDBG(lldb::tid_t tid, int flavor, DBG &dbg) override;
31061da546Spatrick 
32be691f3bSpatrick   int DoWriteGPR(lldb::tid_t tid, int flavor, const GPR &gpr) override;
33061da546Spatrick 
34be691f3bSpatrick   int DoWriteFPU(lldb::tid_t tid, int flavor, const FPU &fpu) override;
35061da546Spatrick 
36be691f3bSpatrick   int DoWriteEXC(lldb::tid_t tid, int flavor, const EXC &exc) override;
37061da546Spatrick 
38be691f3bSpatrick   int DoWriteDBG(lldb::tid_t tid, int flavor, const DBG &dbg) override;
39061da546Spatrick 
40061da546Spatrick   ThreadKDP &m_kdp_thread;
41061da546Spatrick };
42061da546Spatrick 
43dda28197Spatrick #endif // LLDB_SOURCE_PLUGINS_PROCESS_MACOSX_KERNEL_REGISTERCONTEXTKDP_ARM64_H
44