xref: /freebsd-src/contrib/llvm-project/lldb/source/Plugins/DynamicLoader/wasm-DYLD/DynamicLoaderWasmDYLD.h (revision 81ad626541db97eb356e2c1d4a20eb2a26a766ab)
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