aboutsummaryrefslogtreecommitdiff
path: root/include/lldb/Target/Platform.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/lldb/Target/Platform.h')
-rw-r--r--include/lldb/Target/Platform.h26
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; }