1275072Semaste//===-- RegisterContextLinux_x86_64.h ---------------------------*- C++ -*-===//
2275072Semaste//
3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4353358Sdim// See https://llvm.org/LICENSE.txt for license information.
5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6275072Semaste//
7275072Semaste//===----------------------------------------------------------------------===//
8275072Semaste
9275072Semaste#ifndef liblldb_RegisterContextLinux_x86_64_H_
10275072Semaste#define liblldb_RegisterContextLinux_x86_64_H_
11275072Semaste
12296417Sdim#include "RegisterInfoInterface.h"
13275072Semaste
14314564Sdimclass RegisterContextLinux_x86_64 : public lldb_private::RegisterInfoInterface {
15275072Semastepublic:
16314564Sdim  RegisterContextLinux_x86_64(const lldb_private::ArchSpec &target_arch);
17275072Semaste
18314564Sdim  size_t GetGPRSize() const override;
19275072Semaste
20314564Sdim  const lldb_private::RegisterInfo *GetRegisterInfo() const override;
21275072Semaste
22314564Sdim  uint32_t GetRegisterCount() const override;
23275072Semaste
24314564Sdim  uint32_t GetUserRegisterCount() const override;
25288943Sdim
26314564Sdim  const std::vector<lldb_private::RegisterInfo> *
27314564Sdim  GetDynamicRegisterInfoP() const override;
28296417Sdim
29275072Semasteprivate:
30314564Sdim  const lldb_private::RegisterInfo *m_register_info_p;
31314564Sdim  uint32_t m_register_info_count;
32314564Sdim  uint32_t m_user_register_count;
33314564Sdim  std::vector<lldb_private::RegisterInfo> d_register_infos;
34275072Semaste};
35275072Semaste
36275072Semaste#endif
37