blob: 850ec648bffa02057c3f2df50e1ed687283db6f0 [file] [log] [blame]
Greg Claytond815ded2012-08-23 21:17:11 +00001//===-- OperatingSystemPython.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#ifndef LLDB_DISABLE_PYTHON
10
11#ifndef liblldb_OperatingSystemPython_h_
12#define liblldb_OperatingSystemPython_h_
13
14// C Includes
15// C++ Includes
16// Other libraries and framework includes
17#include "lldb/Target/OperatingSystem.h"
18
19class DynamicRegisterInfo;
20
21class OperatingSystemPython : public lldb_private::OperatingSystem
22{
23public:
24 //------------------------------------------------------------------
25 // Static Functions
26 //------------------------------------------------------------------
27 static lldb_private::OperatingSystem *
28 CreateInstance (lldb_private::Process *process, bool force);
29
30 static void
31 Initialize();
32
33 static void
34 Terminate();
35
36 static const char *
37 GetPluginNameStatic();
38
39 static const char *
40 GetPluginDescriptionStatic();
41
42 //------------------------------------------------------------------
43 // Class Methods
44 //------------------------------------------------------------------
45 OperatingSystemPython (lldb_private::Process *process);
46
47 virtual
48 ~OperatingSystemPython ();
49
50 //------------------------------------------------------------------
51 // lldb_private::PluginInterface Methods
52 //------------------------------------------------------------------
53 virtual const char *
54 GetPluginName();
55
56 virtual const char *
57 GetShortPluginName();
58
59 virtual uint32_t
60 GetPluginVersion();
61
62 //------------------------------------------------------------------
63 // lldb_private::OperatingSystem Methods
64 //------------------------------------------------------------------
65 virtual bool
66 UpdateThreadList (lldb_private::ThreadList &old_thread_list,
67 lldb_private::ThreadList &new_thread_list);
68
69 virtual void
70 ThreadWasSelected (lldb_private::Thread *thread);
71
72 virtual lldb::RegisterContextSP
73 CreateRegisterContextForThread (lldb_private::Thread *thread);
74
75 virtual lldb::StopInfoSP
76 CreateThreadStopReason (lldb_private::Thread *thread);
77
78protected:
79
80 DynamicRegisterInfo *
81 GetDynamicRegisterInfo ();
82
83 lldb::ValueObjectSP m_thread_list_valobj_sp;
84 std::auto_ptr<DynamicRegisterInfo> m_register_info_ap;
85
86};
87
88#endif // #ifndef liblldb_OperatingSystemPython_h_
89#endif // #ifndef LLDB_DISABLE_PYTHON