From 78f0df1cf849af8b0ade40a8ebcffd7fb53635cb Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Thu, 30 Oct 2025 15:59:48 +0100 Subject: libs: begin ELF support implementation --- libs/multiboot2/include/multiboot2/information.hpp | 25 ++++++++++++++-------- 1 file changed, 16 insertions(+), 9 deletions(-) (limited to 'libs/multiboot2/include') diff --git a/libs/multiboot2/include/multiboot2/information.hpp b/libs/multiboot2/include/multiboot2/information.hpp index ac03069..d2b4c98 100644 --- a/libs/multiboot2/include/multiboot2/information.hpp +++ b/libs/multiboot2/include/multiboot2/information.hpp @@ -5,6 +5,9 @@ #include "impl/iterator.hpp" #include "impl/tag.hpp" +#include +#include + #include #include #include @@ -50,15 +53,17 @@ namespace multiboot2 /** * @copydoc multiboot2::impl::elf_symbols_data */ - struct elf_symbols : impl::vla_tag + template + struct elf_symbols : impl::vla_tag const, std::span> { - using vla_tag::vla_tag; + using base = impl::vla_tag const, std::span>; + using base::base; - using iterator = range_type::iterator; + using iterator = base::range_type::iterator; - auto data() const noexcept -> range_type + auto data() const noexcept -> base::range_type { - return m_vla; + return this->m_vla; } }; @@ -168,14 +173,16 @@ namespace multiboot2 return maybe_command_line().value(); } - auto maybe_elf_symbols() const noexcept -> std::optional + template + auto maybe_elf_symbols() const noexcept -> std::optional> { - return get(); + return get>(); } - auto elf_symbols() const -> elf_symbols + template + auto elf_symbols() const -> elf_symbols { - return maybe_elf_symbols().value(); + return maybe_elf_symbols().value(); } auto maybe_loader_name() const noexcept -> std::optional -- cgit v1.2.3