1//===-- RegisterContextMach_x86_64.h ------------------------------*- C++
2//-*-===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTMACH_X86_64_H
11#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTMACH_X86_64_H
12
13#include "RegisterContextDarwin_x86_64.h"
14
15class RegisterContextMach_x86_64 : public RegisterContextDarwin_x86_64 {
16public:
17  RegisterContextMach_x86_64(lldb_private::Thread &thread,
18                             uint32_t concrete_frame_idx);
19
20  ~RegisterContextMach_x86_64() override;
21
22protected:
23  int DoReadGPR(lldb::tid_t tid, int flavor, GPR &gpr) override;
24
25  int DoReadFPU(lldb::tid_t tid, int flavor, FPU &fpu) override;
26
27  int DoReadEXC(lldb::tid_t tid, int flavor, EXC &exc) override;
28
29  int DoWriteGPR(lldb::tid_t tid, int flavor, const GPR &gpr) override;
30
31  int DoWriteFPU(lldb::tid_t tid, int flavor, const FPU &fpu) override;
32
33  int DoWriteEXC(lldb::tid_t tid, int flavor, const EXC &exc) override;
34};
35
36#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTMACH_X86_64_H
37