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 15 namespace lldb_private { 16 class RegisterTypeBuilderClang : public RegisterTypeBuilder { 17 public: 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 35 private: 36 Target &m_target; 37 }; 38 } // namespace lldb_private 39 40 #endif // LLDB_PLUGINS_REGISTERTYPEBUILDER_REGISTERTYPEBUILDERCLANG_H 41