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

Function fail_entry

kernel/integration/bf_debug_op_dump_vmexit_log.cpp:152–185  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

150 /// input is undefined.
151 ///
152 extern "C" void
153 fail_entry(bsl::safe_u64::value_type const errc, bsl::safe_u64::value_type const addr) noexcept
154 {
155 /// NOTE:
156 /// - Call into the fast fail handler. This entry point serves as a
157 /// trampoline between C and C++. Specifically, the microkernel
158 /// cannot call a member function directly, and can only call
159 /// a C style function.
160 ///
161
162 auto const ret{dispatch_fail( // --
163 g_mut_gs, // --
164 g_mut_tls, // --
165 g_mut_sys, // --
166 g_mut_intrinsic, // --
167 g_mut_vp_pool, // --
168 g_mut_vs_pool, // --
169 bsl::to_u64(errc), // --
170 bsl::to_u64(addr))};
171
172 if (bsl::unlikely(!ret)) {
173 bsl::print<bsl::V>() << bsl::here();
174 return bf_control_op_exit();
175 }
176
177 /// NOTE:
178 /// - This code should never be reached. The fast fail handler should
179 /// always call one of the "run" ABIs to return back to the
180 /// microkernel when a fast fail is finished. If this is called, it
181 /// is because the fast fail handler returned with an error.
182 ///
183
184 return bf_control_op_exit();
185 }
186
187 /// <!-- description -->
188 /// @brief Implements the VMExit entry function. This is registered

Callers

nothing calls this directly

Calls 2

dispatch_failFunction · 0.50
bf_control_op_exitFunction · 0.50

Tested by

no test coverage detected