Hook up parsers to device discovery
[petitboot] / discover / parser.c
1
2 #include <stdlib.h>
3
4 #include "pb-protocol/pb-protocol.h"
5
6 #include "device-handler.h"
7 #include "log.h"
8 #include "parser.h"
9 extern struct parser kboot_parser;
10
11 /* array of parsers, ordered by priority */
12 static struct parser *parsers[] = {
13         &kboot_parser,
14         NULL
15 };
16
17 void iterate_parsers(struct discover_context *ctx)
18 {
19         int i;
20
21         pb_log("trying parsers for %s\n", ctx->device_path);
22
23         for (i = 0; parsers[i]; i++) {
24                 pb_log("\ttrying parser '%s'\n", parsers[i]->name);
25                 /* just use a dummy device path for now */
26                 if (parsers[i]->parse(ctx))
27                         return;
28         }
29         pb_log("\tno boot_options found\n");
30 }