diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-03-15 16:13:32 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-04-29 14:41:04 +1000 |
commit | 5444648fe1ff9b79f3db5ee6feadd51341f59d71 (patch) | |
tree | 87f8499a982d18abd9c54166549960819dc53d10 /discover/parser.c | |
parent | f7818748090c534b8d835b970373936463bff84a (diff) | |
download | talos-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.c | 4 |
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) |