| 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 |
nothing calls this directly
no test coverage detected