12341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen//===-- ProcessFreeBSD.h ------------------------------------------*- C++ -*-===// 22341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// 32341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// The LLVM Compiler Infrastructure 42341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// 52341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// This file is distributed under the University of Illinois Open Source 62341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// License. See LICENSE.TXT for details. 72341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// 82341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen//===----------------------------------------------------------------------===// 92341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 102341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#ifndef liblldb_ProcessFreeBSD_H_ 112341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#define liblldb_ProcessFreeBSD_H_ 122341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 132341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// C Includes 142341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 152341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// C++ Includes 162341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#include <queue> 172341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 182341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen// Other libraries and framework includes 192341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#include "lldb/Target/Process.h" 202341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#include "lldb/Target/ThreadList.h" 212341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#include "ProcessMessage.h" 222341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#include "ProcessPOSIX.h" 232341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 242341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chenclass ProcessMonitor; 252341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 262341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chenclass ProcessFreeBSD : 272341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen public ProcessPOSIX 282341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen{ 292341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 302341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chenpublic: 312341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen //------------------------------------------------------------------ 322341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen // Static functions. 332341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen //------------------------------------------------------------------ 342b737df3a92e30bb66aec108cb4d09ec1c1e86feGreg Clayton static lldb::ProcessSP 352341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen CreateInstance(lldb_private::Target& target, 362b737df3a92e30bb66aec108cb4d09ec1c1e86feGreg Clayton lldb_private::Listener &listener, 372b737df3a92e30bb66aec108cb4d09ec1c1e86feGreg Clayton const lldb_private::FileSpec *crash_file_path); 382341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 392341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen static void 402341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen Initialize(); 412341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 422341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen static void 432341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen Terminate(); 442341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 450e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton static lldb_private::ConstString 462341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen GetPluginNameStatic(); 472341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 482341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen static const char * 492341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen GetPluginDescriptionStatic(); 502341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 512341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen //------------------------------------------------------------------ 522341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen // Constructors and destructors 532341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen //------------------------------------------------------------------ 542341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen ProcessFreeBSD(lldb_private::Target& target, 552b737df3a92e30bb66aec108cb4d09ec1c1e86feGreg Clayton lldb_private::Listener &listener); 562341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 57c8dd570dddf0b73b74db5c1ecb8f18f023f864e7Greg Clayton virtual bool 582341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen UpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list); 592341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 602341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen //------------------------------------------------------------------ 612341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen // PluginInterface protocol 622341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen //------------------------------------------------------------------ 630e191607adcb0ea8ebd06c278be648a7f5c0097fGreg Clayton virtual lldb_private::ConstString 642341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen GetPluginName(); 652341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 662341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen virtual uint32_t 672341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen GetPluginVersion(); 682341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 692341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen virtual void 702341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen GetPluginCommandHelp(const char *command, lldb_private::Stream *strm); 712341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 722341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen virtual lldb_private::Error 732341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen ExecutePluginCommand(lldb_private::Args &command, 742341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen lldb_private::Stream *strm); 752341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 762341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen virtual lldb_private::Log * 772341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen EnablePluginLogging(lldb_private::Stream *strm, 782341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen lldb_private::Args &command); 792341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 802341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen}; 812341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen 822341d35bc77ffa8597a85b1ffe50b5653a2ec46dJohnny Chen#endif // liblldb_MacOSXProcess_H_ 83