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