1//===-- RegisterContextKDP_arm.h --------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef liblldb_RegisterContextKDP_arm_h_
11#define liblldb_RegisterContextKDP_arm_h_
12
13// C Includes
14
15// C++ Includes
16// Other libraries and framework includes
17// Project includes
18#include "Plugins/Process/Utility/RegisterContextDarwin_arm.h"
19
20class ThreadKDP;
21
22class RegisterContextKDP_arm : public RegisterContextDarwin_arm
23{
24public:
25
26    RegisterContextKDP_arm (ThreadKDP &thread,
27                            uint32_t concrete_frame_idx);
28
29    virtual
30    ~RegisterContextKDP_arm();
31
32protected:
33
34    virtual int
35    DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr);
36
37    int
38    DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu);
39
40    int
41    DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc);
42
43    int
44    DoReadDBG (lldb::tid_t tid, int flavor, DBG &dbg);
45
46    int
47    DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr);
48
49    int
50    DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu);
51
52    int
53    DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc);
54
55    int
56    DoWriteDBG (lldb::tid_t tid, int flavor, const DBG &dbg);
57
58    ThreadKDP &m_kdp_thread;
59};
60
61#endif  // liblldb_RegisterContextKDP_arm_h_
62