1//===-- RegisterContextCoreLinux_x86_64.cpp -------------------------*- 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#include "lldb/Core/DataExtractor.h"
11#include "lldb/Core/RegisterValue.h"
12#include "lldb/Target/Thread.h"
13#include "RegisterContextCoreLinux_x86_64.h"
14
15RegisterContextCoreLinux_x86_64::RegisterContextCoreLinux_x86_64(Thread &thread,
16                                                const DataExtractor &gpregset,
17                                                const DataExtractor &fpregset)
18    : RegisterContextLinux_x86_64(thread, 0)
19{
20    size_t size, len;
21
22    size = GetGPRSize();
23    m_gpregset = new uint8_t[size];
24    len = gpregset.ExtractBytes(0, size, lldb::eByteOrderLittle, m_gpregset);
25    assert(len == size);
26}
27
28RegisterContextCoreLinux_x86_64::~RegisterContextCoreLinux_x86_64()
29{
30    delete [] m_gpregset;
31}
32
33bool
34RegisterContextCoreLinux_x86_64::ReadRegister(const RegisterInfo *reg_info, RegisterValue &value)
35{
36    value = *(uint64_t *)(m_gpregset + reg_info->byte_offset);
37    return true;
38}
39
40bool
41RegisterContextCoreLinux_x86_64::ReadAllRegisterValues(lldb::DataBufferSP &data_sp)
42{
43    return false;
44}
45
46bool
47RegisterContextCoreLinux_x86_64::WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value)
48{
49    return false;
50}
51
52bool
53RegisterContextCoreLinux_x86_64::WriteAllRegisterValues(const lldb::DataBufferSP &data_sp)
54{
55    return false;
56}
57
58bool
59RegisterContextCoreLinux_x86_64::UpdateAfterBreakpoint()
60{
61    return false;
62}
63
64bool
65RegisterContextCoreLinux_x86_64::HardwareSingleStep(bool enable)
66{
67    return false;
68}
69