1//===-- RegisterTypeBuilderClang.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_PLUGINS_REGISTERTYPEBUILDER_REGISTERTYPEBUILDERCLANG_H
10#define LLDB_PLUGINS_REGISTERTYPEBUILDER_REGISTERTYPEBUILDERCLANG_H
11
12#include "lldb/Target/RegisterTypeBuilder.h"
13#include "lldb/Target/Target.h"
14
15namespace lldb_private {
16class RegisterTypeBuilderClang : public RegisterTypeBuilder {
17public:
18 RegisterTypeBuilderClang(Target &target);
19
20 static void Initialize();
21 static void Terminate();
22 static llvm::StringRef GetPluginNameStatic() {
23 return "register-types-clang";
24 }
25 llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
26 static llvm::StringRef GetPluginDescriptionStatic() {
27 return "Create register types using TypeSystemClang";
28 }
29 static lldb::RegisterTypeBuilderSP CreateInstance(Target &target);
30
31 CompilerType GetRegisterType(const std::string &name,
32 const lldb_private::RegisterFlags &flags,
33 uint32_t byte_size) override;
34
35private:
36 Target &m_target;
37};
38} // namespace lldb_private
39
40#endif // LLDB_PLUGINS_REGISTERTYPEBUILDER_REGISTERTYPEBUILDERCLANG_H
41

source code of lldb/source/Plugins/RegisterTypeBuilder/RegisterTypeBuilderClang.h