PluginManager.h revision 5f54ac373b119a4c6693e4875c48aa761fba0c86
1//===-- PluginManager.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 10 11#ifndef liblldb_PluginManager_h_ 12#define liblldb_PluginManager_h_ 13 14#include "lldb/lldb-private.h" 15#include "lldb/Host/FileSpec.h" 16 17namespace lldb_private { 18 19class PluginManager 20{ 21public: 22 static void 23 Initialize (); 24 25 static void 26 Terminate (); 27 28 //------------------------------------------------------------------ 29 // ABI 30 //------------------------------------------------------------------ 31 static bool 32 RegisterPlugin (const char *name, 33 const char *description, 34 ABICreateInstance create_callback); 35 36 static bool 37 UnregisterPlugin (ABICreateInstance create_callback); 38 39 static ABICreateInstance 40 GetABICreateCallbackAtIndex (uint32_t idx); 41 42 static ABICreateInstance 43 GetABICreateCallbackForPluginName (const char *name); 44 45 46 //------------------------------------------------------------------ 47 // Disassembler 48 //------------------------------------------------------------------ 49 static bool 50 RegisterPlugin (const char *name, 51 const char *description, 52 DisassemblerCreateInstance create_callback); 53 54 static bool 55 UnregisterPlugin (DisassemblerCreateInstance create_callback); 56 57 static DisassemblerCreateInstance 58 GetDisassemblerCreateCallbackAtIndex (uint32_t idx); 59 60 static DisassemblerCreateInstance 61 GetDisassemblerCreateCallbackForPluginName (const char *name); 62 63 64 //------------------------------------------------------------------ 65 // DynamicLoader 66 //------------------------------------------------------------------ 67 static bool 68 RegisterPlugin (const char *name, 69 const char *description, 70 DynamicLoaderCreateInstance create_callback); 71 72 static bool 73 UnregisterPlugin (DynamicLoaderCreateInstance create_callback); 74 75 static DynamicLoaderCreateInstance 76 GetDynamicLoaderCreateCallbackAtIndex (uint32_t idx); 77 78 static DynamicLoaderCreateInstance 79 GetDynamicLoaderCreateCallbackForPluginName (const char *name); 80 81 82 //------------------------------------------------------------------ 83 // EmulateInstruction 84 //------------------------------------------------------------------ 85 static bool 86 RegisterPlugin (const char *name, 87 const char *description, 88 EmulateInstructionCreateInstance create_callback); 89 90 static bool 91 UnregisterPlugin (EmulateInstructionCreateInstance create_callback); 92 93 static EmulateInstructionCreateInstance 94 GetEmulateInstructionCreateCallbackAtIndex (uint32_t idx); 95 96 static EmulateInstructionCreateInstance 97 GetEmulateInstructionCreateCallbackForPluginName (const char *name); 98 99 //------------------------------------------------------------------ 100 // LanguageRuntime 101 //------------------------------------------------------------------ 102 static bool 103 RegisterPlugin (const char *name, 104 const char *description, 105 LanguageRuntimeCreateInstance create_callback); 106 107 static bool 108 UnregisterPlugin (LanguageRuntimeCreateInstance create_callback); 109 110 static LanguageRuntimeCreateInstance 111 GetLanguageRuntimeCreateCallbackAtIndex (uint32_t idx); 112 113 static LanguageRuntimeCreateInstance 114 GetLanguageRuntimeCreateCallbackForPluginName (const char *name); 115 116 117 //------------------------------------------------------------------ 118 // ObjectFile 119 //------------------------------------------------------------------ 120 static bool 121 RegisterPlugin (const char *name, 122 const char *description, 123 ObjectFileCreateInstance create_callback); 124 125 static bool 126 UnregisterPlugin (ObjectFileCreateInstance create_callback); 127 128 static ObjectFileCreateInstance 129 GetObjectFileCreateCallbackAtIndex (uint32_t idx); 130 131 static ObjectFileCreateInstance 132 GetObjectFileCreateCallbackForPluginName (const char *name); 133 134 135 //------------------------------------------------------------------ 136 // ObjectContainer 137 //------------------------------------------------------------------ 138 static bool 139 RegisterPlugin (const char *name, 140 const char *description, 141 ObjectContainerCreateInstance create_callback); 142 143 static bool 144 UnregisterPlugin (ObjectContainerCreateInstance create_callback); 145 146 static ObjectContainerCreateInstance 147 GetObjectContainerCreateCallbackAtIndex (uint32_t idx); 148 149 static ObjectContainerCreateInstance 150 GetObjectContainerCreateCallbackForPluginName (const char *name); 151 152 //------------------------------------------------------------------ 153 // LogChannel 154 //------------------------------------------------------------------ 155 static bool 156 RegisterPlugin (const char *name, 157 const char *description, 158 LogChannelCreateInstance create_callback); 159 160 static bool 161 UnregisterPlugin (LogChannelCreateInstance create_callback); 162 163 static LogChannelCreateInstance 164 GetLogChannelCreateCallbackAtIndex (uint32_t idx); 165 166 static LogChannelCreateInstance 167 GetLogChannelCreateCallbackForPluginName (const char *name); 168 169 static const char * 170 GetLogChannelCreateNameAtIndex (uint32_t idx); 171 172 //------------------------------------------------------------------ 173 // Process 174 //------------------------------------------------------------------ 175 static bool 176 RegisterPlugin (const char *name, 177 const char *description, 178 ProcessCreateInstance create_callback); 179 180 static bool 181 UnregisterPlugin (ProcessCreateInstance create_callback); 182 183 static ProcessCreateInstance 184 GetProcessCreateCallbackAtIndex (uint32_t idx); 185 186 static ProcessCreateInstance 187 GetProcessCreateCallbackForPluginName (const char *name); 188 189 //------------------------------------------------------------------ 190 // SymbolFile 191 //------------------------------------------------------------------ 192 static bool 193 RegisterPlugin (const char *name, 194 const char *description, 195 SymbolFileCreateInstance create_callback); 196 197 static bool 198 UnregisterPlugin (SymbolFileCreateInstance create_callback); 199 200 static SymbolFileCreateInstance 201 GetSymbolFileCreateCallbackAtIndex (uint32_t idx); 202 203 static SymbolFileCreateInstance 204 GetSymbolFileCreateCallbackForPluginName (const char *name); 205 206 207 //------------------------------------------------------------------ 208 // SymbolVendor 209 //------------------------------------------------------------------ 210 static bool 211 RegisterPlugin (const char *name, 212 const char *description, 213 SymbolVendorCreateInstance create_callback); 214 215 static bool 216 UnregisterPlugin (SymbolVendorCreateInstance create_callback); 217 218 static SymbolVendorCreateInstance 219 GetSymbolVendorCreateCallbackAtIndex (uint32_t idx); 220 221 static SymbolVendorCreateInstance 222 GetSymbolVendorCreateCallbackForPluginName (const char *name); 223 224 //------------------------------------------------------------------ 225 // UnwindAssemblyProfiler 226 //------------------------------------------------------------------ 227 static bool 228 RegisterPlugin (const char *name, 229 const char *description, 230 UnwindAssemblyProfilerCreateInstance create_callback); 231 232 static bool 233 UnregisterPlugin (UnwindAssemblyProfilerCreateInstance create_callback); 234 235 static UnwindAssemblyProfilerCreateInstance 236 GetUnwindAssemblyProfilerCreateCallbackAtIndex (uint32_t idx); 237 238 static UnwindAssemblyProfilerCreateInstance 239 GetUnwindAssemblyProfilerCreateCallbackForPluginName (const char *name); 240 241 //------------------------------------------------------------------ 242 // ArchDefaultUnwindPlan 243 //------------------------------------------------------------------ 244 static bool 245 RegisterPlugin (const char *name, 246 const char *description, 247 ArchDefaultUnwindPlanCreateInstance create_callback); 248 249 static bool 250 UnregisterPlugin (ArchDefaultUnwindPlanCreateInstance create_callback); 251 252 static ArchDefaultUnwindPlanCreateInstance 253 GetArchDefaultUnwindPlanCreateCallbackAtIndex (uint32_t idx); 254 255 static ArchDefaultUnwindPlanCreateInstance 256 GetArchDefaultUnwindPlanCreateCallbackForPluginName (const char *name); 257 258 //------------------------------------------------------------------ 259 // ArchVolatileRegs 260 //------------------------------------------------------------------ 261 static bool 262 RegisterPlugin (const char *name, 263 const char *description, 264 ArchVolatileRegsCreateInstance create_callback); 265 266 static bool 267 UnregisterPlugin (ArchVolatileRegsCreateInstance create_callback); 268 269 static ArchVolatileRegsCreateInstance 270 GetArchVolatileRegsCreateCallbackAtIndex (uint32_t idx); 271 272 static ArchVolatileRegsCreateInstance 273 GetArchVolatileRegsCreateCallbackForPluginName (const char *name); 274 275}; 276 277 278} // namespace lldb_private 279 280#endif // liblldb_PluginManager_h_ 281