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

Function bootstrap_entry

kernel/integration/bf_vm_op_create_vm.cpp:107–135  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105 /// @param ppid0 the physical process to bootstrap
106 ///
107 extern "C" void
108 bootstrap_entry(bsl::safe_u16::value_type const ppid0) noexcept
109 {
110 bsl::discard(ppid0);
111
112 // create with invalid handle
113 {
114 bsl::safe_u16 mut_id{};
115 constexpr auto hndl{BF_INVALID_HANDLE};
116
117 bf_status_t const ret{bf_vm_op_create_vm_impl(hndl.get(), mut_id.data())};
118 integration::require(ret != BF_STATUS_SUCCESS);
119 }
120
121 // create all and prove that creating one more will fail
122 {
123 constexpr auto one{bsl::safe_idx::magic_1()};
124 for (bsl::safe_idx mut_i{one}; mut_i < HYPERVISOR_MAX_VMS; ++mut_i) {
125 auto const vmid{g_mut_sys.bf_vm_op_create_vm()};
126 integration::require(vmid.is_valid());
127 }
128
129 auto const vmid{g_mut_sys.bf_vm_op_create_vm()};
130 integration::require(vmid.is_invalid());
131 }
132
133 bsl::debug() << "success. remaining backtrace is expected\n" << bsl::here();
134 return bf_control_op_exit();
135 }
136
137 /// <!-- description -->
138 /// @brief Implements the fast fail entry function. This is registered

Callers

nothing calls this directly

Calls 5

bf_vm_op_create_vm_implFunction · 0.85
requireFunction · 0.85
bf_control_op_exitFunction · 0.50
dataMethod · 0.45
bf_vm_op_create_vmMethod · 0.45

Tested by

no test coverage detected