discover: Separate temporary and permanent device data
[petitboot] / discover / parser.c
1
2 #include <stdlib.h>
3
4 #include "types/types.h"
5 #include <log/log.h>
6
7 #include "device-handler.h"
8 #include "parser.h"
9 #include "parser-utils.h"
10
11 struct parser __grub2_parser;
12 struct parser __kboot_parser;
13 struct parser __native_parser;
14 struct parser __yaboot_parser;
15
16 static const struct parser *const parsers[] = {
17 //      &__native_parser,
18         &__kboot_parser,
19         &__grub2_parser,
20         &__yaboot_parser,
21         NULL
22 };
23
24 void iterate_parsers(struct discover_context *ctx)
25 {
26         int i;
27         unsigned int count = 0;
28
29         pb_log("trying parsers for %s\n", ctx->device->device->id);
30
31         for (i = 0; parsers[i]; i++) {
32                 pb_log("\ttrying parser '%s'\n", parsers[i]->name);
33                 count += parsers[i]->parse(ctx);
34         }
35         if (!count)
36                 pb_log("\tno boot_options found\n");
37 }
38
39 void parser_init(void)
40 {
41 }