summaryrefslogtreecommitdiffstats
path: root/discover/grub2/grub2.h
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2014-12-11 09:42:58 +0800
committerJeremy Kerr <jk@ozlabs.org>2014-12-11 15:11:42 +0800
commite330e3f5adf78d3ba77217995a4bc3cd1fd16f4c (patch)
tree5fe430243b363f991692f5e0929a5cf9a270fa88 /discover/grub2/grub2.h
parent9c33c54f7b431074a7d0daddce34140044aaadf6 (diff)
downloadtalos-petitboot-e330e3f5adf78d3ba77217995a4bc3cd1fd16f4c.tar.gz
talos-petitboot-e330e3f5adf78d3ba77217995a4bc3cd1fd16f4c.zip
discover/grub2: Allow unset and invalid defaults
If the default environment variable is unset or invalid (i.e., references a non-existent boot option), then GRUB2 will fallback to the first boot option present. This is preventing petitboot from autobooting where no default is explicitly set, or is stale. This change adds this fallback behaviour to petitboot. Because we don't know if the first option will be a default at parse time (as no other options matched the default env var), we need to keep options in a list, and register them with the discover server once the parse is complete. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/grub2/grub2.h')
-rw-r--r--discover/grub2/grub2.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/discover/grub2/grub2.h b/discover/grub2/grub2.h
index 0a89324..68176fb 100644
--- a/discover/grub2/grub2.h
+++ b/discover/grub2/grub2.h
@@ -98,6 +98,7 @@ struct grub2_script {
struct discover_boot_option *opt;
const char *filename;
unsigned int n_options;
+ struct list options;
};
struct grub2_parser {
OpenPOWER on IntegriCloud