MCPcopy Create free account
hub / github.com/Bareflank/hypervisor / initialize

Method initialize

kernel/src/ext_t.hpp:1016–1042  ·  view source on GitHub ↗

<!-- 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

Source from the content-addressed store, hash-verified

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

Callers 2

initialize_rptMethod · 0.45

Calls 1

initialize_rptMethod · 0.95

Tested by

no test coverage detected