blob: 304fa4c382a104ecb9a2fbcfe27ffe9f5ccf0e4a [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 //------------------------------------------------------------------
Greg Clayton29d19302012-02-27 18:40:48 +000034 static lldb::ProcessSP
Johnny Chen9ed5b492012-01-05 21:48:15 +000035 CreateInstance(lldb_private::Target& target,
Greg Clayton29d19302012-02-27 18:40:48 +000036 lldb_private::Listener &listener,
37 const lldb_private::FileSpec *crash_file_path);
Johnny Chen9ed5b492012-01-05 21:48:15 +000038
39 static void
40 Initialize();
41
42 static void
43 Terminate();
44
45 static const char *
46 GetPluginNameStatic();
47
48 static const char *
49 GetPluginDescriptionStatic();
50
51 //------------------------------------------------------------------
52 // Constructors and destructors
53 //------------------------------------------------------------------
54 ProcessFreeBSD(lldb_private::Target& target,
Greg Clayton29d19302012-02-27 18:40:48 +000055 lldb_private::Listener &listener);
Johnny Chen9ed5b492012-01-05 21:48:15 +000056
57 virtual uint32_t
58 UpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list);
59
60 //------------------------------------------------------------------
61 // PluginInterface protocol
62 //------------------------------------------------------------------
63 virtual const char *
64 GetPluginName();
65
66 virtual const char *
67 GetShortPluginName();
68
69 virtual uint32_t
70 GetPluginVersion();
71
72 virtual void
73 GetPluginCommandHelp(const char *command, lldb_private::Stream *strm);
74
75 virtual lldb_private::Error
76 ExecutePluginCommand(lldb_private::Args &command,
77 lldb_private::Stream *strm);
78
79 virtual lldb_private::Log *
80 EnablePluginLogging(lldb_private::Stream *strm,
81 lldb_private::Args &command);
82
83};
84
85#endif // liblldb_MacOSXProcess_H_