Home | History | Annotate | Download | only in FreeBSD
      1 //===-- 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 
     24 class ProcessMonitor;
     25 
     26 class ProcessFreeBSD :
     27     public ProcessPOSIX
     28 {
     29 
     30 public:
     31     //------------------------------------------------------------------
     32     // Static functions.
     33     //------------------------------------------------------------------
     34     static lldb::ProcessSP
     35     CreateInstance(lldb_private::Target& target,
     36                    lldb_private::Listener &listener,
     37                    const lldb_private::FileSpec *crash_file_path);
     38 
     39     static void
     40     Initialize();
     41 
     42     static void
     43     Terminate();
     44 
     45     static lldb_private::ConstString
     46     GetPluginNameStatic();
     47 
     48     static const char *
     49     GetPluginDescriptionStatic();
     50 
     51     //------------------------------------------------------------------
     52     // Constructors and destructors
     53     //------------------------------------------------------------------
     54     ProcessFreeBSD(lldb_private::Target& target,
     55                    lldb_private::Listener &listener);
     56 
     57     virtual bool
     58     UpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list);
     59 
     60     //------------------------------------------------------------------
     61     // PluginInterface protocol
     62     //------------------------------------------------------------------
     63     virtual lldb_private::ConstString
     64     GetPluginName();
     65 
     66     virtual uint32_t
     67     GetPluginVersion();
     68 
     69     virtual void
     70     GetPluginCommandHelp(const char *command, lldb_private::Stream *strm);
     71 
     72     virtual lldb_private::Error
     73     ExecutePluginCommand(lldb_private::Args &command,
     74                          lldb_private::Stream *strm);
     75 
     76     virtual lldb_private::Log *
     77     EnablePluginLogging(lldb_private::Stream *strm,
     78                         lldb_private::Args &command);
     79 
     80 };
     81 
     82 #endif  // liblldb_MacOSXProcess_H_
     83