LLDB mainline
PlatformDarwinDevice.h
Go to the documentation of this file.
1//===-- PlatformDarwinDevice.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_SOURCE_PLUGINS_PLATFORM_MACOSX_PLATFORMDARWINDEVICE_H
10#define LLDB_SOURCE_PLUGINS_PLATFORM_MACOSX_PLATFORMDARWINDEVICE_H
11
12#include "PlatformDarwin.h"
13
14#include "llvm/ADT/StringRef.h"
15
16#include <string>
17
18namespace lldb_private {
19
20/// Abstract Darwin platform with a potential device support directory.
22public:
25
26protected:
28 const ModuleSpec &module_spec, lldb::ModuleSP &module_sp,
29 const FileSpecList *module_search_paths_ptr,
30 llvm::SmallVectorImpl<lldb::ModuleSP> *old_modules, bool *did_create_ptr);
31
33 SDKDirectoryInfo(const FileSpec &sdk_dir_spec);
36 llvm::VersionTuple version;
38 };
39
40 typedef std::vector<SDKDirectoryInfo> SDKDirectoryInfoCollection;
41
43
46
49 llvm::sys::fs::file_type ft,
50 llvm::StringRef path);
51
52 const char *GetDeviceSupportDirectory();
54
55 virtual llvm::StringRef GetPlatformName() = 0;
56 virtual llvm::StringRef GetDeviceSupportDirectoryName() = 0;
57
58 std::mutex m_sdk_dir_mutex;
60
61private:
64};
65} // namespace lldb_private
66
67#endif // LLDB_SOURCE_PLUGINS_PLATFORM_MACOSX_PLATFORMDARWINDEVICE_H
A uniqued constant string class.
Definition: ConstString.h:40
A file collection class.
Definition: FileSpecList.h:91
A file utility class.
Definition: FileSpec.h:56
Abstract Darwin platform with a potential device support directory.
virtual llvm::StringRef GetDeviceSupportDirectoryName()=0
virtual llvm::StringRef GetPlatformName()=0
static FileSystem::EnumerateDirectoryResult GetContainedFilesIntoVectorOfStringsCallback(void *baton, llvm::sys::fs::file_type ft, llvm::StringRef path)
std::vector< SDKDirectoryInfo > SDKDirectoryInfoCollection
const SDKDirectoryInfo * GetSDKDirectoryForCurrentOSVersion()
SDKDirectoryInfoCollection m_sdk_directory_infos
const SDKDirectoryInfo * GetSDKDirectoryForLatestOSVersion()
virtual Status GetSharedModuleWithLocalCache(const ModuleSpec &module_spec, lldb::ModuleSP &module_sp, const FileSpecList *module_search_paths_ptr, llvm::SmallVectorImpl< lldb::ModuleSP > *old_modules, bool *did_create_ptr)
PlatformDarwin(const PlatformDarwin &)=delete
An error handling class.
Definition: Status.h:115
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Module > ModuleSP
Definition: lldb-forward.h:373