feat(integrations): implement initial bootloader interface touchpoints

This commit is contained in:
2025-10-28 21:05:22 -04:00
parent fe714cc411
commit f82d24a206
6 changed files with 178 additions and 63 deletions

View File

@@ -1,4 +1,5 @@
use crate::context::SproutContext;
use crate::integrations::bootloader_interface::BootloaderInterface;
use crate::utils;
use crate::utils::media_loader::MediaLoaderHandle;
use crate::utils::media_loader::constants::linux::LINUX_EFI_INITRD_MEDIA_GUID;
@@ -102,6 +103,10 @@ pub fn chainload(context: Rc<SproutContext>, configuration: &ChainloadConfigurat
initrd_handle = Some(handle);
}
// Mark execution of an entry in the bootloader interface.
BootloaderInterface::mark_exec()
.context("unable to mark execution of boot entry in bootloader interface")?;
// Start the loaded image.
// This call might return, or it may pass full control to another image that will never return.
// Capture the result to ensure we can return an error if the image fails to start, but only