diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-09-13 15:30:58 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-09-24 13:14:59 +0800 |
commit | 0a47d0c3a25552e0661fd919c4f87f990b081245 (patch) | |
tree | 8438204a6da0f1735ecb1aaa8a6389b569f45465 /discover/grub2/script.c | |
parent | c12f6bacbd96fda27252bdb79781e5743c01da60 (diff) | |
download | talos-petitboot-0a47d0c3a25552e0661fd919c4f87f990b081245.tar.gz talos-petitboot-0a47d0c3a25552e0661fd919c4f87f990b081245.zip |
discover/grub2: Add menuentry execution
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/grub2/script.c')
-rw-r--r-- | discover/grub2/script.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/discover/grub2/script.c b/discover/grub2/script.c index 5361394..568e250 100644 --- a/discover/grub2/script.c +++ b/discover/grub2/script.c @@ -10,6 +10,8 @@ container_of(stmt, struct grub2_statement_simple, st) #define to_stmt_if(stmt) \ container_of(stmt, struct grub2_statement_if, st) +#define to_stmt_menuentry(stmt) \ + container_of(stmt, struct grub2_statement_menuentry, st) struct env_entry { const char *name; @@ -119,6 +121,17 @@ int statement_if_execute(struct grub2_script *script, return rc; } +int statement_menuentry_execute(struct grub2_script *script, + struct grub2_statement *statement) +{ + struct grub2_statement_menuentry *st = to_stmt_menuentry(statement); + + process_expansions(script, st->argv); + statements_execute(script, st->statements); + + return 0; +} + static void init_env(struct grub2_script *script) { struct env_entry *env; |