blob: 9a511b91c2fe687cede87a47dbfbf56e0972ec7e [file] [log] [blame]
Johnny Chen9ed5b492012-01-05 21:48:15 +00001//===-- ProcessFreeBSD.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#ifndef liblldb_ProcessFreeBSD_H_
11#define liblldb_ProcessFreeBSD_H_
12
13// C Includes
14
15// C++ Includes
16#include <queue>
17
18// Other libraries and framework includes
19#include "lldb/Target/Process.h"
20#include "lldb/Target/ThreadList.h"
21#include "ProcessMessage.h"
22#include "ProcessPOSIX.h"
23
24class ProcessMonitor;
25
26class ProcessFreeBSD :
27 public ProcessPOSIX
28{
29
30public:
31 //------------------------------------------------------------------
32 // Static functions.
33 //------------------------------------------------------------------
34 static Process*
35 CreateInstance(lldb_private::Target& target,
36 lldb_private::Listener &listener);
37
38 static void
39 Initialize();
40
41 static void
42 Terminate();
43
44 static const char *
45 GetPluginNameStatic();
46
47 static const char *
48 GetPluginDescriptionStatic();
49
50 //------------------------------------------------------------------
51 // Constructors and destructors
52 //------------------------------------------------------------------
53 ProcessFreeBSD(lldb_private::Target& target,
54 lldb_private::Listener &listener);
55
56 virtual uint32_t
57 UpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list);
58
59 //------------------------------------------------------------------
60 // PluginInterface protocol
61 //------------------------------------------------------------------
62 virtual const char *
63 GetPluginName();
64
65 virtual const char *
66 GetShortPluginName();
67
68 virtual uint32_t
69 GetPluginVersion();
70
71 virtual void
72 GetPluginCommandHelp(const char *command, lldb_private::Stream *strm);
73
74 virtual lldb_private::Error
75 ExecutePluginCommand(lldb_private::Args &command,
76 lldb_private::Stream *strm);
77
78 virtual lldb_private::Log *
79 EnablePluginLogging(lldb_private::Stream *strm,
80 lldb_private::Args &command);
81
82};
83
84#endif // liblldb_MacOSXProcess_H_