]> git.ozlabs.org Git - petitboot/blobdiff - discover/grub2/grub2.c
grub2/grub2: add Yocto paths to default grub2 conf search paths
[petitboot] / discover / grub2 / grub2.c
index e942f6880ddde8c3c48ffd05f5d7f0228b6fe77b..f62ccdd1aa9be4271d1372660a3dd1a5590b8f43 100644 (file)
@@ -1,5 +1,7 @@
 
 #include <assert.h>
+#include <string.h>
+#include <i18n/i18n.h>
 
 #include <talloc/talloc.h>
 #include <url/url.h>
@@ -9,8 +11,6 @@
 #include <discover/parser-utils.h>
 
 #include "grub2.h"
-#include "parser.h"
-#include "lexer.h"
 
 static const char *const grub2_conf_files[] = {
        "/grub.cfg",
@@ -21,6 +21,7 @@ static const char *const grub2_conf_files[] = {
        "/boot/grub/grub.cfg",
        "/boot/grub2/grub.cfg",
        "/boot/grub/menu.lst",
+       "/efi/boot/grub.cfg",
        "/GRUB.CFG",
        "/MENU.LST",
        "/GRUB/GRUB.CFG",
@@ -28,6 +29,7 @@ static const char *const grub2_conf_files[] = {
        "/GRUB/MENU.LST",
        "/BOOT/GRUB/GRUB.CFG",
        "/BOOT/GRUB/MENU.LST",
+       "/EFI/BOOT/GRUB.CFG",
        NULL
 };
 
@@ -97,18 +99,21 @@ static int grub2_parse(struct discover_context *dc)
        if (dc->event)
                return -1;
 
-       parser = grub2_parser_create(dc);
-
        for (filename = grub2_conf_files; *filename; filename++) {
                rc = parser_request_file(dc, dc->device, *filename, &buf, &len);
                if (rc)
                        continue;
 
-               grub2_parser_parse(parser, buf, len);
+               parser = grub2_parser_create(dc);
+               grub2_parser_parse(parser, *filename, buf, len);
+               device_handler_status_dev_info(dc->handler, dc->device,
+                               _("Parsed GRUB configuration from %s"),
+                               *filename);
                talloc_free(buf);
+               talloc_free(parser);
+               break;
        }
 
-       talloc_free(parser);
 
        return 0;
 }