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

Function bootstrap_entry

example/default/src/main.cpp:106–138  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

104 /// @param ppid the physical process to bootstrap
105 ///
106 extern "C" void
107 bootstrap_entry(bsl::safe_u16::value_type const ppid) noexcept
108 {
109 /// NOTE:
110 /// - Call into the bootstrap handler. This entry point serves as a
111 /// trampoline between C and C++. Specifically, the microkernel
112 /// cannot call a member function directly, and can only call
113 /// a C style function.
114 ///
115
116 auto const ret{dispatch_bootstrap( // --
117 g_mut_gs, // --
118 g_mut_tls, // --
119 g_mut_sys, // --
120 g_mut_intrinsic, // --
121 g_mut_vp_pool, // --
122 g_mut_vs_pool, // --
123 bsl::to_u16(ppid))};
124
125 if (bsl::unlikely(!ret)) {
126 bsl::print<bsl::V>() << bsl::here();
127 return syscall::bf_control_op_exit();
128 }
129
130 /// NOTE:
131 /// - This code should never be reached. The bootstrap handler should
132 /// always call one of the "run" ABIs to return back to the
133 /// microkernel when a bootstrap is finished. If this is called, it
134 /// is because the bootstrap handler returned with an error.
135 ///
136
137 return syscall::bf_control_op_exit();
138 }
139
140 /// <!-- description -->
141 /// @brief Implements the fast fail entry function. This is registered

Callers 1

behavior.cppFile · 0.50

Calls 2

dispatch_bootstrapFunction · 0.70
bf_control_op_exitFunction · 0.50

Tested by

no test coverage detected