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

Function fail_entry

kernel/integration/bf_vm_op_unmap_direct.cpp:290–323  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

288 /// input is undefined.
289 ///
290 extern "C" void
291 fail_entry(bsl::safe_u64::value_type const errc, bsl::safe_u64::value_type const addr) noexcept
292 {
293 /// NOTE:
294 /// - Call into the fast fail handler. This entry point serves as a
295 /// trampoline between C and C++. Specifically, the microkernel
296 /// cannot call a member function directly, and can only call
297 /// a C style function.
298 ///
299
300 auto const ret{dispatch_fail( // --
301 g_mut_gs, // --
302 g_mut_tls, // --
303 g_mut_sys, // --
304 g_mut_intrinsic, // --
305 g_mut_vp_pool, // --
306 g_mut_vs_pool, // --
307 bsl::to_u64(errc), // --
308 bsl::to_u64(addr))};
309
310 if (bsl::unlikely(!ret)) {
311 bsl::print<bsl::V>() << bsl::here();
312 return bf_control_op_exit();
313 }
314
315 /// NOTE:
316 /// - This code should never be reached. The fast fail handler should
317 /// always call one of the "run" ABIs to return back to the
318 /// microkernel when a fast fail is finished. If this is called, it
319 /// is because the fast fail handler returned with an error.
320 ///
321
322 return bf_control_op_exit();
323 }
324
325 /// <!-- description -->
326 /// @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