8#include "tpde/AssemblerElf.hpp"
9#include "tpde/util/SmallVector.hpp"
10#include "tpde/util/function_ref.hpp"
17 using SymbolResolver = util::function_ref<
void *(std::string_view)>;
22 u32 registered_frame_off = 0;
24 u32 local_sym_count = 0;
25 util::SmallVector<void *, 64> sym_addrs;
28 ElfMapper() noexcept = default;
29 ~ElfMapper() { reset(); }
31 ElfMapper(
const ElfMapper &) =
delete;
32 ElfMapper(ElfMapper &&) =
delete;
34 ElfMapper &operator=(
const ElfMapper &) =
delete;
35 ElfMapper &operator=(ElfMapper &&) =
delete;
37 void reset() noexcept;
39 bool map(AssemblerElfBase &assembler, SymbolResolver resolver) noexcept;
41 void *get_sym_addr(AssemblerElfBase::SymRef sym) noexcept;