1*b3e77600SGreg Clayton //===-- OperatingSystemPython.h ---------------------------*- C++ -*-===// 2*b3e77600SGreg Clayton // 3*b3e77600SGreg Clayton // The LLVM Compiler Infrastructure 4*b3e77600SGreg Clayton // 5*b3e77600SGreg Clayton // This file is distributed under the University of Illinois Open Source 6*b3e77600SGreg Clayton // License. See LICENSE.TXT for details. 7*b3e77600SGreg Clayton // 8*b3e77600SGreg Clayton //===----------------------------------------------------------------------===// 9*b3e77600SGreg Clayton #ifndef LLDB_DISABLE_PYTHON 10*b3e77600SGreg Clayton 11*b3e77600SGreg Clayton #ifndef liblldb_OperatingSystemPython_h_ 12*b3e77600SGreg Clayton #define liblldb_OperatingSystemPython_h_ 13*b3e77600SGreg Clayton 14*b3e77600SGreg Clayton // C Includes 15*b3e77600SGreg Clayton // C++ Includes 16*b3e77600SGreg Clayton // Other libraries and framework includes 17*b3e77600SGreg Clayton #include "lldb/Target/OperatingSystem.h" 18*b3e77600SGreg Clayton 19*b3e77600SGreg Clayton class DynamicRegisterInfo; 20*b3e77600SGreg Clayton 21*b3e77600SGreg Clayton class OperatingSystemPython : public lldb_private::OperatingSystem 22*b3e77600SGreg Clayton { 23*b3e77600SGreg Clayton public: 24*b3e77600SGreg Clayton //------------------------------------------------------------------ 25*b3e77600SGreg Clayton // Static Functions 26*b3e77600SGreg Clayton //------------------------------------------------------------------ 27*b3e77600SGreg Clayton static lldb_private::OperatingSystem * 28*b3e77600SGreg Clayton CreateInstance (lldb_private::Process *process, bool force); 29*b3e77600SGreg Clayton 30*b3e77600SGreg Clayton static void 31*b3e77600SGreg Clayton Initialize(); 32*b3e77600SGreg Clayton 33*b3e77600SGreg Clayton static void 34*b3e77600SGreg Clayton Terminate(); 35*b3e77600SGreg Clayton 36*b3e77600SGreg Clayton static const char * 37*b3e77600SGreg Clayton GetPluginNameStatic(); 38*b3e77600SGreg Clayton 39*b3e77600SGreg Clayton static const char * 40*b3e77600SGreg Clayton GetPluginDescriptionStatic(); 41*b3e77600SGreg Clayton 42*b3e77600SGreg Clayton //------------------------------------------------------------------ 43*b3e77600SGreg Clayton // Class Methods 44*b3e77600SGreg Clayton //------------------------------------------------------------------ 45*b3e77600SGreg Clayton OperatingSystemPython (lldb_private::Process *process); 46*b3e77600SGreg Clayton 47*b3e77600SGreg Clayton virtual 48*b3e77600SGreg Clayton ~OperatingSystemPython (); 49*b3e77600SGreg Clayton 50*b3e77600SGreg Clayton //------------------------------------------------------------------ 51*b3e77600SGreg Clayton // lldb_private::PluginInterface Methods 52*b3e77600SGreg Clayton //------------------------------------------------------------------ 53*b3e77600SGreg Clayton virtual const char * 54*b3e77600SGreg Clayton GetPluginName(); 55*b3e77600SGreg Clayton 56*b3e77600SGreg Clayton virtual const char * 57*b3e77600SGreg Clayton GetShortPluginName(); 58*b3e77600SGreg Clayton 59*b3e77600SGreg Clayton virtual uint32_t 60*b3e77600SGreg Clayton GetPluginVersion(); 61*b3e77600SGreg Clayton 62*b3e77600SGreg Clayton //------------------------------------------------------------------ 63*b3e77600SGreg Clayton // lldb_private::OperatingSystem Methods 64*b3e77600SGreg Clayton //------------------------------------------------------------------ 65*b3e77600SGreg Clayton virtual bool 66*b3e77600SGreg Clayton UpdateThreadList (lldb_private::ThreadList &old_thread_list, 67*b3e77600SGreg Clayton lldb_private::ThreadList &new_thread_list); 68*b3e77600SGreg Clayton 69*b3e77600SGreg Clayton virtual void 70*b3e77600SGreg Clayton ThreadWasSelected (lldb_private::Thread *thread); 71*b3e77600SGreg Clayton 72*b3e77600SGreg Clayton virtual lldb::RegisterContextSP 73*b3e77600SGreg Clayton CreateRegisterContextForThread (lldb_private::Thread *thread); 74*b3e77600SGreg Clayton 75*b3e77600SGreg Clayton virtual lldb::StopInfoSP 76*b3e77600SGreg Clayton CreateThreadStopReason (lldb_private::Thread *thread); 77*b3e77600SGreg Clayton 78*b3e77600SGreg Clayton protected: 79*b3e77600SGreg Clayton 80*b3e77600SGreg Clayton DynamicRegisterInfo * 81*b3e77600SGreg Clayton GetDynamicRegisterInfo (); 82*b3e77600SGreg Clayton 83*b3e77600SGreg Clayton lldb::ValueObjectSP m_thread_list_valobj_sp; 84*b3e77600SGreg Clayton std::auto_ptr<DynamicRegisterInfo> m_register_info_ap; 85*b3e77600SGreg Clayton 86*b3e77600SGreg Clayton }; 87*b3e77600SGreg Clayton 88*b3e77600SGreg Clayton #endif // #ifndef liblldb_OperatingSystemPython_h_ 89*b3e77600SGreg Clayton #endif // #ifndef LLDB_DISABLE_PYTHON 90