From 59747ee01e0158f97bdf8c182305e757d90a8d7a Mon Sep 17 00:00:00 2001 From: Jeremy Kerr Date: Thu, 12 Sep 2013 16:08:18 +0800 Subject: [PATCH] discover/grub2: Add initial script infrastructure Now that we can parse scripts, we want some infrastructure for execution. Signed-off-by: Jeremy Kerr --- discover/grub2/grub2.h | 10 +++++++++- discover/grub2/parser.y | 2 +- discover/grub2/script.c | 12 ++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 discover/grub2/script.c 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; +} + -- 2.39.2