1//===-- RegisterContextKDP_x86_64.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_x86_64_h_
11#define liblldb_RegisterContextKDP_x86_64_h_
12
13// C Includes
14// C++ Includes
15// Other libraries and framework includes
16// Project includes
17#include "Plugins/Process/Utility/RegisterContextDarwin_x86_64.h"
18
19class ThreadKDP;
20
21class RegisterContextKDP_x86_64 : public RegisterContextDarwin_x86_64
22{
23public:
24
25    RegisterContextKDP_x86_64 (ThreadKDP &thread,
26                               uint32_t concrete_frame_idx);
27
28    virtual
29    ~RegisterContextKDP_x86_64();
30
31protected:
32
33    virtual int
34    DoReadGPR (lldb::tid_t tid, int flavor, GPR &gpr);
35
36    int
37    DoReadFPU (lldb::tid_t tid, int flavor, FPU &fpu);
38
39    int
40    DoReadEXC (lldb::tid_t tid, int flavor, EXC &exc);
41
42    int
43    DoWriteGPR (lldb::tid_t tid, int flavor, const GPR &gpr);
44
45    int
46    DoWriteFPU (lldb::tid_t tid, int flavor, const FPU &fpu);
47
48    int
49    DoWriteEXC (lldb::tid_t tid, int flavor, const EXC &exc);
50
51    ThreadKDP &m_kdp_thread;
52};
53
54#endif  // liblldb_RegisterContextKDP_x86_64_h_
55