11f6a57c1SMed Ismail Bennani //===-- ScriptedProcessPythonInterface.h ------------------------*- C++ -*-===// 21f6a57c1SMed Ismail Bennani // 31f6a57c1SMed Ismail Bennani // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 41f6a57c1SMed Ismail Bennani // See https://llvm.org/LICENSE.txt for license information. 51f6a57c1SMed Ismail Bennani // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 61f6a57c1SMed Ismail Bennani // 71f6a57c1SMed Ismail Bennani //===----------------------------------------------------------------------===// 81f6a57c1SMed Ismail Bennani 91f6a57c1SMed Ismail Bennani #ifndef LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H 101f6a57c1SMed Ismail Bennani #define LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H 111f6a57c1SMed Ismail Bennani 121f6a57c1SMed Ismail Bennani #include "lldb/Host/Config.h" 131f6a57c1SMed Ismail Bennani 141f6a57c1SMed Ismail Bennani #if LLDB_ENABLE_PYTHON 151f6a57c1SMed Ismail Bennani 16*3925204cSMed Ismail Bennani #include "ScriptedPythonInterface.h" 171f6a57c1SMed Ismail Bennani #include "lldb/Interpreter/ScriptedProcessInterface.h" 181f6a57c1SMed Ismail Bennani 191f6a57c1SMed Ismail Bennani namespace lldb_private { 20*3925204cSMed Ismail Bennani class ScriptedProcessPythonInterface : public ScriptedProcessInterface, 21*3925204cSMed Ismail Bennani public ScriptedPythonInterface { 221f6a57c1SMed Ismail Bennani public: 23*3925204cSMed Ismail Bennani ScriptedProcessPythonInterface(ScriptInterpreterPythonImpl &interpreter); 241f6a57c1SMed Ismail Bennani 251f6a57c1SMed Ismail Bennani StructuredData::GenericSP 26*3925204cSMed Ismail Bennani CreatePluginObject(const llvm::StringRef class_name, 27*3925204cSMed Ismail Bennani ExecutionContext &exe_ctx, 281f6a57c1SMed Ismail Bennani StructuredData::DictionarySP args_sp) override; 291f6a57c1SMed Ismail Bennani 301f6a57c1SMed Ismail Bennani Status Launch() override; 311f6a57c1SMed Ismail Bennani 321f6a57c1SMed Ismail Bennani Status Resume() override; 331f6a57c1SMed Ismail Bennani 34312b43daSMed Ismail Bennani bool ShouldStop() override; 35312b43daSMed Ismail Bennani 36312b43daSMed Ismail Bennani Status Stop() override; 37312b43daSMed Ismail Bennani 381f6a57c1SMed Ismail Bennani lldb::MemoryRegionInfoSP 391f6a57c1SMed Ismail Bennani GetMemoryRegionContainingAddress(lldb::addr_t address) override; 401f6a57c1SMed Ismail Bennani 411f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetThreadWithID(lldb::tid_t tid) override; 421f6a57c1SMed Ismail Bennani 431f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetRegistersForThread(lldb::tid_t tid) override; 441f6a57c1SMed Ismail Bennani 451f6a57c1SMed Ismail Bennani lldb::DataExtractorSP ReadMemoryAtAddress(lldb::addr_t address, size_t size, 461f6a57c1SMed Ismail Bennani Status &error) override; 471f6a57c1SMed Ismail Bennani 481f6a57c1SMed Ismail Bennani StructuredData::DictionarySP GetLoadedImages() override; 491f6a57c1SMed Ismail Bennani 501f6a57c1SMed Ismail Bennani lldb::pid_t GetProcessID() override; 511f6a57c1SMed Ismail Bennani 521f6a57c1SMed Ismail Bennani bool IsAlive() override; 531f6a57c1SMed Ismail Bennani }; 541f6a57c1SMed Ismail Bennani } // namespace lldb_private 551f6a57c1SMed Ismail Bennani 561f6a57c1SMed Ismail Bennani #endif // LLDB_ENABLE_PYTHON 571f6a57c1SMed Ismail Bennani #endif // LLDB_PLUGINS_SCRIPTINTERPRETER_PYTHON_SCRIPTEDPROCESSPYTHONINTERFACE_H 58