From: Jeremy Kerr Date: Thu, 12 Sep 2013 08:08:18 +0000 (+0800) Subject: discover/grub2: Add initial script infrastructure X-Git-Tag: v1.0.0~472 X-Git-Url: https://git.ozlabs.org/?p=petitboot;a=commitdiff_plain;h=59747ee01e0158f97bdf8c182305e757d90a8d7a discover/grub2: Add initial script infrastructure Now that we can parse scripts, we want some infrastructure for execution. Signed-off-by: Jeremy Kerr --- diff --git a/discover/grub2/grub2.h b/discover/grub2/grub2.h index 0643a72..f3ad2e5 100644 --- a/discover/grub2/grub2.h +++ b/discover/grub2/grub2.h @@ -55,9 +55,13 @@ struct grub2_statement_block { struct grub2_statements *statements; }; +struct grub2_script { + struct grub2_statements *statements; +}; + struct grub2_parser { void *scanner; - struct grub2_statements *statements; + struct grub2_script *script; }; struct grub2_statements *create_statements(struct grub2_parser *parser); @@ -88,5 +92,9 @@ void argv_append(struct grub2_argv *argv, struct grub2_word *word); void word_append(struct grub2_word *w1, struct grub2_word *w2); +/* script interface */ + +struct grub2_script *create_script(void *ctx); + #endif /* GRUB2_H */ diff --git a/discover/grub2/parser.y b/discover/grub2/parser.y index d57c732..6461801 100644 --- a/discover/grub2/parser.y +++ b/discover/grub2/parser.y @@ -56,7 +56,7 @@ static void yyerror(struct grub2_parser *, char const *s); %% script: statements { - parser->statements = $1; + parser->script->statements = $1; } statements: statement { diff --git a/discover/grub2/script.c b/discover/grub2/script.c new file mode 100644 index 0000000..71d6cba --- /dev/null +++ b/discover/grub2/script.c @@ -0,0 +1,12 @@ + +#include + +#include "grub2.h" + +struct grub2_script *create_script(void *ctx) +{ + struct grub2_script *script; + script = talloc(ctx, struct grub2_script); + return script; +} +