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