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