<!-- description --> @brief Initializes this ext_t <!-- inputs/outputs --> @param mut_tls the current TLS block @param mut_page_pool the page_pool_t to use @param i the ID for this ext_t @param file the ELF file for this ext_t @param system_rpt the system RPT provided by the loader @return Returns bsl::errc_success on success, bsl::errc_failure and friends otherwise
| 1014 | /// and friends otherwise |
| 1015 | /// |
| 1016 | [[nodiscard]] constexpr auto |
| 1017 | initialize( |
| 1018 | tls_t &mut_tls, |
| 1019 | page_pool_t &mut_page_pool, |
| 1020 | bsl::safe_u16 const &i, |
| 1021 | loader::ext_elf_file_t const *const file, |
| 1022 | root_page_table_t const &system_rpt) noexcept -> bsl::errc_type |
| 1023 | { |
| 1024 | bsl::expects(i.is_valid_and_checked()); |
| 1025 | bsl::expects(i != syscall::BF_INVALID_ID); |
| 1026 | bsl::expects(nullptr != file); |
| 1027 | |
| 1028 | validate(file); |
| 1029 | m_entry_ip = file->e_entry; |
| 1030 | |
| 1031 | auto const ret{ |
| 1032 | this->initialize_rpt(mut_tls, mut_page_pool, m_main_rpt, system_rpt, file)}; |
| 1033 | |
| 1034 | if (bsl::unlikely(!ret)) { |
| 1035 | bsl::print<bsl::V>() << bsl::here(); |
| 1036 | return ret; |
| 1037 | } |
| 1038 | |
| 1039 | m_id = ~i; |
| 1040 | m_handle = syscall::BF_INVALID_HANDLE; |
| 1041 | return ret; |
| 1042 | } |
| 1043 | |
| 1044 | /// <!-- description --> |
| 1045 | /// @brief Release the ext_t |
no test coverage detected