summaryrefslogtreecommitdiffstats
path: root/discover/grub2-parser.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2013-03-12 16:13:55 +0800
committerJeremy Kerr <jk@ozlabs.org>2013-04-29 14:31:12 +1000
commit06a49ebdfc795a70b938f5aee29f3c488ef9fc21 (patch)
tree57ef497f90ed6dbbccbdd0cedae6e7f0989bd150 /discover/grub2-parser.c
parent39e06f5cfda0ed0c1eeb7a7604a3d05dda81ccf1 (diff)
downloadtalos-petitboot-06a49ebdfc795a70b938f5aee29f3c488ef9fc21.tar.gz
talos-petitboot-06a49ebdfc795a70b938f5aee29f3c488ef9fc21.zip
parsers: change parser.parse to accept a buffer
Rather than having each of the parsers do their own open(), read(), etc, use the registered filenames array to find & open parser conf files. Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/grub2-parser.c')
-rw-r--r--discover/grub2-parser.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/discover/grub2-parser.c b/discover/grub2-parser.c
index 6ef5945..3c756c1 100644
--- a/discover/grub2-parser.c
+++ b/discover/grub2-parser.c
@@ -156,11 +156,10 @@ static const char *grub2_known_names[] = {
NULL
};
-static int grub2_parse(struct discover_context *dc)
+static int grub2_parse(struct discover_context *dc, char *buf, int len)
{
struct conf_context *conf;
struct grub2_state *state;
- int rc;
conf = talloc_zero(dc, struct conf_context);
@@ -169,7 +168,6 @@ static int grub2_parse(struct discover_context *dc)
conf->dc = dc;
conf_init_global_options(conf);
- conf->conf_files = grub2_conf_files,
conf->get_pair = conf_get_pair_space;
conf->process_pair = grub2_process_pair;
conf->finish = grub2_finish;
@@ -182,10 +180,10 @@ static int grub2_parse(struct discover_context *dc)
state->opt = talloc_zero(conf->dc->device, struct boot_option);
state->opt->boot_args = talloc_strdup(state->opt, "");
- rc = conf_parse(conf);
+ conf_parse_buf(conf, buf, len);
talloc_free(conf);
- return rc;
+ return 1;
}
struct parser __grub2_parser = {
OpenPOWER on IntegriCloud