Tamas Berghammer 3c47151d1a Restrict the scope of a hack in DYLDRendezvous
The hack is there to work around an incorrect load address reported
by the android linker on API 21 and 22 devices. This CL restricts the
hack to those android API levels.

Differential revision: http://reviews.llvm.org/D13288

llvm-svn: 249012
2015-10-01 13:57:54 +00:00

111 lines
2.8 KiB
C++

//===-- PlatformAndroid.h ---------------------------------------*- C++ -*-===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#ifndef liblldb_PlatformAndroid_h_
#define liblldb_PlatformAndroid_h_
// C Includes
// C++ Includes
#include <string>
// Other libraries and framework includes
// Project includes
#include "Plugins/Platform/Linux/PlatformLinux.h"
namespace lldb_private {
namespace platform_android {
class PlatformAndroid : public platform_linux::PlatformLinux
{
public:
static void
Initialize ();
static void
Terminate ();
PlatformAndroid (bool is_host);
virtual
~PlatformAndroid();
//------------------------------------------------------------
// lldb_private::PluginInterface functions
//------------------------------------------------------------
static lldb::PlatformSP
CreateInstance (bool force, const ArchSpec *arch);
static ConstString
GetPluginNameStatic (bool is_host);
static const char *
GetPluginDescriptionStatic (bool is_host);
ConstString
GetPluginName() override;
uint32_t
GetPluginVersion() override
{
return 1;
}
//------------------------------------------------------------
// lldb_private::Platform functions
//------------------------------------------------------------
Error
ConnectRemote (Args& args) override;
Error
GetFile (const FileSpec& source,
const FileSpec& destination) override;
Error
PutFile (const FileSpec& source,
const FileSpec& destination,
uint32_t uid = UINT32_MAX,
uint32_t gid = UINT32_MAX) override;
uint32_t
GetSdkVersion();
bool
GetRemoteOSVersion() override;
Error
DisconnectRemote () override;
protected:
const char *
GetCacheHostname () override;
Error
DownloadModuleSlice (const FileSpec &src_file_spec,
const uint64_t src_offset,
const uint64_t src_size,
const FileSpec &dst_file_spec) override;
Error
DownloadSymbolFile (const lldb::ModuleSP& module_sp,
const FileSpec& dst_file_spec) override;
private:
std::string m_device_id;
uint32_t m_sdk_version;
DISALLOW_COPY_AND_ASSIGN (PlatformAndroid);
};
} // namespace platofor_android
} // namespace lldb_private
#endif // liblldb_PlatformAndroid_h_