diff --git a/src/entries.rs b/src/entries.rs
index eed0ece..757a45f 100644
--- a/src/entries.rs
+++ b/src/entries.rs
@@ -94,6 +94,11 @@ impl BootableEntry {
self.default = true;
}
+ // Unmark this entry as the default entry.
+ pub fn unmark_default(&mut self) {
+ self.default = false;
+ }
+
/// Mark this entry as being pinned, which prevents prefixing.
pub fn mark_pin_name(&mut self) {
self.pin_name = true;
diff --git a/src/integrations/bootloader_interface.rs b/src/integrations/bootloader_interface.rs
index 42db6f1..4b3798e 100644
--- a/src/integrations/bootloader_interface.rs
+++ b/src/integrations/bootloader_interface.rs
@@ -45,6 +45,8 @@ impl BootloaderInterface {
| LoaderFeatures::ConfigTimeout
| LoaderFeatures::ConfigTimeoutOneShot
| LoaderFeatures::MenuDisable
+ | LoaderFeatures::EntryDefault
+ | LoaderFeatures::EntryOneShot
}
/// Tell the system that Sprout was initialized at the current time.
@@ -275,4 +277,32 @@ impl BootloaderInterface {
// We provide the unspecified value instead.
Ok(BootloaderInterfaceTimeout::Unspecified)
}
+
+ /// Get the default entry set by the bootloader interface.
+ pub fn get_default_entry() -> Result