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* 27b1db658333cdebca31a128be95e926d80c3c7796Greg Clayton CreateInstance (bool force, const lldb_private::ArchSpec *arch); 2824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 2924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static void 3024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton Initialize (); 3124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 3224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static void 3324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton Terminate (); 3424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 350e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton static lldb_private::ConstString 360e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton GetPluginNameStatic (bool is_host); 3724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 3824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton static const char * 3924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetDescriptionStatic(bool is_host); 4024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 4124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 4224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton // Class Methods 4324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 4424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton PlatformMacOSX (bool is_host); 4524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 4624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual 4724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton ~PlatformMacOSX(); 4824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 4924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 5024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton // lldb_private::PluginInterface functions 5124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton //------------------------------------------------------------ 520e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton virtual lldb_private::ConstString 5324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetPluginName() 5424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton { 550e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton return GetPluginNameStatic (IsHost()); 5624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton } 5724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 5824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual uint32_t 5924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetPluginVersion() 6024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton { 6124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton return 1; 6224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton } 6324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 6424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual const char * 6524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetDescription () 66e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton { 6724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton return GetDescriptionStatic (IsHost()); 6824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton } 6924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 7024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual lldb_private::Error 7124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetFile (const lldb_private::FileSpec &platform_file, 7224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton const lldb_private::UUID *uuid_ptr, 7324bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton lldb_private::FileSpec &local_file); 7424bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 7524bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton virtual bool 7624bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton GetSupportedArchitectureAtIndex (uint32_t idx, 7724bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton lldb_private::ArchSpec &arch); 7824bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 7924bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Claytonprivate: 8024bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton DISALLOW_COPY_AND_ASSIGN (PlatformMacOSX); 8124bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton 8224bc5d9bfad2a1c562c27e7cf37e1c56d85c45e7Greg Clayton}; 83e4b9c1fb338ee1ada72e6a3c198afb342d68c5c1Greg Clayton 84cb8977d726be451df9978a74088435667fa37da2Greg Clayton#endif // liblldb_PlatformMacOSX_h_ 85