summaryrefslogtreecommitdiffstats
path: root/discover/parser.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-03-15 16:13:32 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-04-29 14:41:04 +1000
commit5444648fe1ff9b79f3db5ee6feadd51341f59d71 (patch)
tree87f8499a982d18abd9c54166549960819dc53d10 /discover/parser.c
parentf7818748090c534b8d835b970373936463bff84a (diff)
downloadtalos-petitboot-5444648fe1ff9b79f3db5ee6feadd51341f59d71.tar.gz
talos-petitboot-5444648fe1ff9b79f3db5ee6feadd51341f59d71.zip
discover: Handle unresolved resources
This change adds an unresolved resource queue - any unresolved resources discovered by parsers are added to this queue rather than being reported to the clients. When we discover a new device, we try to resolve any resources in the queue against the new device. If resolution succeeds, we can send the option to clients. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/parser.c')
-rw-r--r--discover/parser.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/discover/parser.c b/discover/parser.c
index 462d614..0df8a73 100644
--- a/discover/parser.c
+++ b/discover/parser.c
@@ -18,7 +18,7 @@ struct parser __kboot_parser;
struct parser __native_parser;
struct parser __yaboot_parser;
-static const struct parser *const parsers[] = {
+static struct parser *const parsers[] = {
// &__native_parser,
&__kboot_parser,
&__grub2_parser,
@@ -116,8 +116,10 @@ void iterate_parsers(struct discover_context *ctx)
for (i = 0; parsers[i]; i++) {
pb_log("\ttrying parser '%s'\n", parsers[i]->name);
+ ctx->parser = parsers[i];
iterate_parser_files(ctx, parsers[i]);
}
+ ctx->parser = NULL;
}
void parser_init(void)
OpenPOWER on IntegriCloud