PlatformMacOSX.h revision 24bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7
1e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton//===-- PlatformMacOSX.h ----------------------------------------*- C++ -*-===// 2e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// 3e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// The LLVM Compiler Infrastructure 4e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// 5e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// This file is distributed under the University of Illinois Open Source 6e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// License. See LICENSE.TXT for details. 7e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// 8e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton//===----------------------------------------------------------------------===// 9e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 10e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton#ifndef liblldb_PlatformMacOSX_h_ 11e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton#define liblldb_PlatformMacOSX_h_ 12e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 13e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// C Includes 14e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// C++ Includes 15e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// Other libraries and framework includes 16e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton// Project includes 1758e26e0935138225477fd61283215ceff2068899Greg Clayton#include "PlatformDarwin.h" 18e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 1924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonclass PlatformMacOSX : public PlatformDarwin 2024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton{ 2124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonpublic: 2224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 2324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 2424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton // Class functions 2524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 2624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static lldb_private::Platform* 2724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton CreateInstance (); 2824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 2924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static void 3024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton Initialize (); 3124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 3224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static void 3324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton Terminate (); 3424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 3524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static const char * 3624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetPluginNameStatic (); 3724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 3824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static const char * 3924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetShortPluginNameStatic(bool is_host); 4024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 4124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static const char * 4224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetDescriptionStatic(bool is_host); 4324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 4424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 4524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton // Class Methods 4624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 4724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton PlatformMacOSX (bool is_host); 4824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 4924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual 5024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton ~PlatformMacOSX(); 5124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 5224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 5324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton // lldb_private::PluginInterface functions 5424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 5524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual const char * 5624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetPluginName() 5724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton { 5824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton return GetPluginNameStatic (); 5924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton } 6024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 6124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual const char * 6224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetShortPluginName() 6324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton { 6424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton return GetShortPluginNameStatic (IsHost()); 6524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton } 6624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 6724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual uint32_t 6824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetPluginVersion() 6924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton { 7024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton return 1; 7124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton } 7224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 7324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual const char * 7424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetDescription () 75e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton { 7624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton return GetDescriptionStatic (IsHost()); 7724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton } 7824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 7924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual lldb_private::Error 8024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetFile (const lldb_private::FileSpec &platform_file, 8124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton const lldb_private::UUID *uuid_ptr, 8224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton lldb_private::FileSpec &local_file); 8324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 8424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton lldb_private::Error 8524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetSharedModule (const lldb_private::FileSpec &platform_file, 8624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton const lldb_private::ArchSpec &arch, 8724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton const lldb_private::UUID *uuid_ptr, 8824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton const lldb_private::ConstString *object_name_ptr, 8924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton off_t object_offset, 9024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton lldb::ModuleSP &module_sp, 9124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton lldb::ModuleSP *old_module_sp_ptr, 9224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton bool *did_create_ptr); 9324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 9424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual bool 9524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetSupportedArchitectureAtIndex (uint32_t idx, 9624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton lldb_private::ArchSpec &arch); 9724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 9824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonprivate: 9924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton DISALLOW_COPY_AND_ASSIGN (PlatformMacOSX); 10024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 10124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton}; 102e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 103cb8977d726be451df9978a74088435667fa37da2Greg Clayton#endif // liblldb_PlatformMacOSX_h_ 104