xref: /openbsd-src/gnu/llvm/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteMacOSX.h (revision f6aab3d83b51b91c24247ad2c2573574de475a82)
1be691f3bSpatrick //===-- PlatformRemoteMacOSX.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_PLATFORM_MACOSX_PLATFORMREMOTEMACOSX_H
10be691f3bSpatrick #define LLDB_SOURCE_PLUGINS_PLATFORM_MACOSX_PLATFORMREMOTEMACOSX_H
11be691f3bSpatrick 
12be691f3bSpatrick #include "PlatformRemoteDarwinDevice.h"
13*f6aab3d8Srobert #include "lldb/Utility/FileSpec.h"
14*f6aab3d8Srobert #include "lldb/Utility/Status.h"
15*f6aab3d8Srobert #include "lldb/lldb-forward.h"
16*f6aab3d8Srobert #include "llvm/ADT/StringRef.h"
17*f6aab3d8Srobert 
18*f6aab3d8Srobert #include <string>
19*f6aab3d8Srobert #include <vector>
20*f6aab3d8Srobert 
21*f6aab3d8Srobert namespace lldb_private {
22*f6aab3d8Srobert class ArchSpec;
23*f6aab3d8Srobert class FileSpec;
24*f6aab3d8Srobert class UUID;
25be691f3bSpatrick 
26be691f3bSpatrick class PlatformRemoteMacOSX : public virtual PlatformRemoteDarwinDevice {
27be691f3bSpatrick public:
28be691f3bSpatrick   PlatformRemoteMacOSX();
29be691f3bSpatrick 
30*f6aab3d8Srobert   static lldb::PlatformSP CreateInstance(bool force, const ArchSpec *arch);
31be691f3bSpatrick 
32be691f3bSpatrick   static void Initialize();
33be691f3bSpatrick 
34be691f3bSpatrick   static void Terminate();
35be691f3bSpatrick 
GetPluginNameStatic()36*f6aab3d8Srobert   static llvm::StringRef GetPluginNameStatic() { return "remote-macosx"; }
37be691f3bSpatrick 
38*f6aab3d8Srobert   static llvm::StringRef GetDescriptionStatic();
39be691f3bSpatrick 
GetPluginName()40*f6aab3d8Srobert   llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); }
41be691f3bSpatrick 
GetDescription()42*f6aab3d8Srobert   llvm::StringRef GetDescription() override { return GetDescriptionStatic(); }
43be691f3bSpatrick 
44*f6aab3d8Srobert   std::vector<ArchSpec>
45*f6aab3d8Srobert   GetSupportedArchitectures(const ArchSpec &process_host_arch) override;
46be691f3bSpatrick 
47be691f3bSpatrick protected:
48be691f3bSpatrick   llvm::StringRef GetDeviceSupportDirectoryName() override;
49be691f3bSpatrick   llvm::StringRef GetPlatformName() override;
50be691f3bSpatrick };
51be691f3bSpatrick 
52*f6aab3d8Srobert } // namespace lldb_private
53*f6aab3d8Srobert 
54be691f3bSpatrick #endif // LLDB_SOURCE_PLUGINS_PLATFORM_MACOSX_PLATFORMREMOTEMACOSX_H
55