blob: 949cafed98b305cfc744031ab30efa635ed68bc1 [file] [log] [blame]
Chris Lattner24943d22010-06-08 16:52:24 +00001//===-- lldb-private-interfaces.h -------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Greg Claytonb3448432011-03-24 21:19:54 +000010#ifndef liblldb_lldb_private_interfaces_h_
11#define liblldb_lldb_private_interfaces_h_
Chris Lattner24943d22010-06-08 16:52:24 +000012
13#if defined(__cplusplus)
Chris Lattner24943d22010-06-08 16:52:24 +000014
15#include "lldb/lldb-private.h"
16
17namespace lldb_private
18{
Greg Clayton75906e42011-05-11 18:39:18 +000019 typedef lldb::ABISP (*ABICreateInstance) (const ArchSpec &arch);
Jim Ingham7d408382013-03-02 00:26:47 +000020 typedef Disassembler* (*DisassemblerCreateInstance) (const ArchSpec &arch, const char *flavor);
Greg Clayton75c703d2011-02-16 04:46:07 +000021 typedef DynamicLoader* (*DynamicLoaderCreateInstance) (Process* process, bool force);
Greg Claytoncbe61bd2013-02-06 17:22:03 +000022 typedef ObjectContainer* (*ObjectContainerCreateInstance) (const lldb::ModuleSP &module_sp, lldb::DataBufferSP& data_sp, lldb::offset_t data_offset, const FileSpec *file, lldb::offset_t offset, lldb::offset_t length);
Greg Clayton36b877d2013-04-24 22:29:28 +000023 typedef size_t (*ObjectFileGetModuleSpecifications) (const FileSpec &file, lldb::DataBufferSP& data_sp, lldb::offset_t data_offset, lldb::offset_t file_offset, lldb::offset_t length, ModuleSpecList &module_specs);
Greg Claytoncbe61bd2013-02-06 17:22:03 +000024 typedef ObjectFile* (*ObjectFileCreateInstance) (const lldb::ModuleSP &module_sp, lldb::DataBufferSP& data_sp, lldb::offset_t data_offset, const FileSpec* file, lldb::offset_t file_offset, lldb::offset_t length);
25 typedef ObjectFile* (*ObjectFileCreateMemoryInstance) (const lldb::ModuleSP &module_sp, lldb::DataBufferSP& data_sp, const lldb::ProcessSP &process_sp, lldb::addr_t offset);
Chris Lattner24943d22010-06-08 16:52:24 +000026 typedef LogChannel* (*LogChannelCreateInstance) ();
Greg Clayton888a7332011-04-26 04:39:08 +000027 typedef EmulateInstruction * (*EmulateInstructionCreateInstance) (const ArchSpec &arch, InstructionType inst_type);
Greg Clayton37f962e2011-08-22 02:49:39 +000028 typedef OperatingSystem* (*OperatingSystemCreateInstance) (Process *process, bool force);
Jim Ingham642036f2010-09-23 02:01:19 +000029 typedef LanguageRuntime *(*LanguageRuntimeCreateInstance) (Process *process, lldb::LanguageType language);
Greg Claytonb1db6582012-03-20 18:34:04 +000030 typedef Platform* (*PlatformCreateInstance) (bool force, const ArchSpec *arch);
Greg Clayton46c9a352012-02-09 06:16:32 +000031 typedef lldb::ProcessSP (*ProcessCreateInstance) (Target &target, Listener &listener, const FileSpec *crash_file_path);
Chris Lattner24943d22010-06-08 16:52:24 +000032 typedef SymbolFile* (*SymbolFileCreateInstance) (ObjectFile* obj_file);
Greg Clayton18809182012-12-14 02:15:00 +000033 typedef SymbolVendor* (*SymbolVendorCreateInstance) (const lldb::ModuleSP &module_sp, lldb_private::Stream *feedback_strm); // Module can be NULL for default system symbol vendor
Chris Lattner24943d22010-06-08 16:52:24 +000034 typedef bool (*BreakpointHitCallback) (void *baton, StoppointCallbackContext *context, lldb::user_id_t break_id, lldb::user_id_t break_loc_id);
Johnny Chenf3ec4612012-08-09 23:09:42 +000035 typedef bool (*WatchpointHitCallback) (void *baton, StoppointCallbackContext *context, lldb::user_id_t watch_id);
Jim Ingham008f3dc2013-07-18 21:48:26 +000036 typedef lldb::ThreadPlanSP (*ThreadPlanShouldStopHereCallback) (ThreadPlan *current_plan, Flags &flags, void *baton);
Greg Clayton8badcb22011-04-25 21:14:26 +000037 typedef UnwindAssembly* (*UnwindAssemblyCreateInstance) (const ArchSpec &arch);
Greg Claytonb3448432011-03-24 21:19:54 +000038 typedef int (*ComparisonFunction)(const void *, const void *);
Greg Claytonf1252502012-02-29 04:21:24 +000039 typedef bool (*CommandOverrideCallback)(void *baton, const char **argv);
Greg Clayton87e9d322012-10-19 18:02:49 +000040 typedef void (*DebuggerInitializeCallback)(Debugger &debugger);
Greg Claytonb3448432011-03-24 21:19:54 +000041
Chris Lattner24943d22010-06-08 16:52:24 +000042} // namespace lldb_private
43
Chris Lattner24943d22010-06-08 16:52:24 +000044#endif // #if defined(__cplusplus)
45
Greg Claytonb3448432011-03-24 21:19:54 +000046#endif // liblldb_lldb_private_interfaces_h_