diff options
Diffstat (limited to 'include/lldb/Target/Platform.h')
-rw-r--r-- | include/lldb/Target/Platform.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/include/lldb/Target/Platform.h b/include/lldb/Target/Platform.h index cc007d959c65..6288a3ab684f 100644 --- a/include/lldb/Target/Platform.h +++ b/include/lldb/Target/Platform.h @@ -21,10 +21,10 @@ // Other libraries and framework includes // Project includes -#include "lldb/Core/ArchSpec.h" #include "lldb/Core/PluginInterface.h" #include "lldb/Core/UserSettingsController.h" #include "lldb/Interpreter/Options.h" +#include "lldb/Utility/ArchSpec.h" #include "lldb/Utility/ConstString.h" #include "lldb/Utility/FileSpec.h" #include "lldb/lldb-private-forward.h" @@ -53,6 +53,7 @@ public: }; typedef std::shared_ptr<PlatformProperties> PlatformPropertiesSP; +typedef llvm::SmallVector<lldb::addr_t, 6> MmapArgList; //---------------------------------------------------------------------- /// @class Platform Platform.h "lldb/Target/Platform.h" @@ -116,9 +117,12 @@ public: static lldb::PlatformSP Create(const ArchSpec &arch, ArchSpec *platform_arch_ptr, Status &error); - static uint32_t GetNumConnectedRemotePlatforms(); - - static lldb::PlatformSP GetConnectedRemotePlatformAtIndex(uint32_t idx); + //------------------------------------------------------------------------ + /// Augments the triple either with information from platform or the host + /// system (if platform is null). + //------------------------------------------------------------------------ + static ArchSpec GetAugmentedArchSpec(Platform *platform, + llvm::StringRef triple); //------------------------------------------------------------------ /// Find a platform plugin for a given process. @@ -512,6 +516,13 @@ public: m_os_version_set_while_connected = m_system_arch.IsValid(); } + //--------------------------------------------------------------------------- + /// If the triple contains not specify the vendor, os, and environment parts, + /// we "augment" these using information from the platform and return the + /// resulting ArchSpec object. + //--------------------------------------------------------------------------- + ArchSpec GetAugmentedArchSpec(llvm::StringRef triple); + // Used for column widths size_t GetMaxUserIDNameLength() const { return m_max_uid_name_len; } @@ -628,8 +639,11 @@ public: virtual Status Unlink(const FileSpec &file_spec); - virtual uint64_t ConvertMmapFlagsToPlatform(const ArchSpec &arch, - unsigned flags); + virtual MmapArgList GetMmapArgumentList(const ArchSpec &arch, + lldb::addr_t addr, + lldb::addr_t length, + unsigned prot, unsigned flags, + lldb::addr_t fd, lldb::addr_t offset); virtual bool GetSupportsRSync() { return m_supports_rsync; } |