15ffd83dbSDimitry Andric //===-- DynamicLoaderWasmDYLD.h ---------------------------------*- C++ -*-===// 25ffd83dbSDimitry Andric // 35ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 45ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 55ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 65ffd83dbSDimitry Andric // 75ffd83dbSDimitry Andric //===----------------------------------------------------------------------===// 85ffd83dbSDimitry Andric 95ffd83dbSDimitry Andric #ifndef liblldb_Plugins_DynamicLoaderWasmDYLD_h_ 105ffd83dbSDimitry Andric #define liblldb_Plugins_DynamicLoaderWasmDYLD_h_ 115ffd83dbSDimitry Andric 125ffd83dbSDimitry Andric #include "lldb/Target/DynamicLoader.h" 135ffd83dbSDimitry Andric 145ffd83dbSDimitry Andric namespace lldb_private { 155ffd83dbSDimitry Andric namespace wasm { 165ffd83dbSDimitry Andric 175ffd83dbSDimitry Andric class DynamicLoaderWasmDYLD : public DynamicLoader { 185ffd83dbSDimitry Andric public: 195ffd83dbSDimitry Andric DynamicLoaderWasmDYLD(Process *process); 205ffd83dbSDimitry Andric 215ffd83dbSDimitry Andric static void Initialize(); Terminate()225ffd83dbSDimitry Andric static void Terminate() {} 235ffd83dbSDimitry Andric GetPluginNameStatic()24349cc55cSDimitry Andric static llvm::StringRef GetPluginNameStatic() { return "wasm-dyld"; } 25349cc55cSDimitry Andric static llvm::StringRef GetPluginDescriptionStatic(); 265ffd83dbSDimitry Andric 275ffd83dbSDimitry Andric static DynamicLoader *CreateInstance(Process *process, bool force); 285ffd83dbSDimitry Andric 295ffd83dbSDimitry Andric /// DynamicLoader 305ffd83dbSDimitry Andric /// \{ 315ffd83dbSDimitry Andric void DidAttach() override; DidLaunch()325ffd83dbSDimitry Andric void DidLaunch() override {} CanLoadImage()335ffd83dbSDimitry Andric Status CanLoadImage() override { return Status(); } 345ffd83dbSDimitry Andric lldb::ThreadPlanSP GetStepThroughTrampolinePlan(Thread &thread, 355ffd83dbSDimitry Andric bool stop) override; 36*81ad6265SDimitry Andric lldb::ModuleSP LoadModuleAtAddress(const lldb_private::FileSpec &file, 37*81ad6265SDimitry Andric lldb::addr_t link_map_addr, 38*81ad6265SDimitry Andric lldb::addr_t base_addr, 39*81ad6265SDimitry Andric bool base_addr_is_offset) override; 40*81ad6265SDimitry Andric 415ffd83dbSDimitry Andric /// \} 425ffd83dbSDimitry Andric 435ffd83dbSDimitry Andric /// PluginInterface protocol. 445ffd83dbSDimitry Andric /// \{ GetPluginName()45349cc55cSDimitry Andric llvm::StringRef GetPluginName() override { return GetPluginNameStatic(); } 465ffd83dbSDimitry Andric /// \} 475ffd83dbSDimitry Andric }; 485ffd83dbSDimitry Andric 495ffd83dbSDimitry Andric } // namespace wasm 505ffd83dbSDimitry Andric } // namespace lldb_private 515ffd83dbSDimitry Andric 525ffd83dbSDimitry Andric #endif // liblldb_Plugins_DynamicLoaderWasmDYLD_h_ 53