1be691f3bSpatrick //===-- ArchitectureAArch64.h -----------------------------------*- C++ -*-===// 2be691f3bSpatrick // 3be691f3bSpatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4be691f3bSpatrick // See https://llvm.org/LICENSE.txt for license information. 5be691f3bSpatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6be691f3bSpatrick // 7be691f3bSpatrick //===----------------------------------------------------------------------===// 8be691f3bSpatrick 9be691f3bSpatrick #ifndef LLDB_SOURCE_PLUGINS_ARCHITECTURE_AARCH64_ARCHITECTUREAARCH64_H 10be691f3bSpatrick #define LLDB_SOURCE_PLUGINS_ARCHITECTURE_AARCH64_ARCHITECTUREAARCH64_H 11be691f3bSpatrick 12be691f3bSpatrick #include "Plugins/Process/Utility/MemoryTagManagerAArch64MTE.h" 13be691f3bSpatrick #include "lldb/Core/Architecture.h" 14be691f3bSpatrick 15be691f3bSpatrick namespace lldb_private { 16be691f3bSpatrick 17be691f3bSpatrick class ArchitectureAArch64 : public Architecture { 18be691f3bSpatrick public: GetPluginNameStatic()19*f6aab3d8Srobert static llvm::StringRef GetPluginNameStatic() { return "aarch64"; } 20be691f3bSpatrick static void Initialize(); 21be691f3bSpatrick static void Terminate(); 22be691f3bSpatrick GetPluginName()23*f6aab3d8Srobert llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } 24be691f3bSpatrick OverrideStopInfo(Thread & thread)25be691f3bSpatrick void OverrideStopInfo(Thread &thread) const override{}; 26be691f3bSpatrick GetMemoryTagManager()27be691f3bSpatrick const MemoryTagManager *GetMemoryTagManager() const override { 28be691f3bSpatrick return &m_memory_tag_manager; 29be691f3bSpatrick } 30be691f3bSpatrick 31be691f3bSpatrick private: 32be691f3bSpatrick static std::unique_ptr<Architecture> Create(const ArchSpec &arch); 33be691f3bSpatrick ArchitectureAArch64() = default; 34be691f3bSpatrick MemoryTagManagerAArch64MTE m_memory_tag_manager; 35be691f3bSpatrick }; 36be691f3bSpatrick 37be691f3bSpatrick } // namespace lldb_private 38be691f3bSpatrick 39be691f3bSpatrick #endif // LLDB_SOURCE_PLUGINS_ARCHITECTURE_AARCH64_ARCHITECTUREAARCH64_H 40