X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;ds=sidebyside;f=discover%2Fgrub2%2Fgrub2.h;h=5b83fad5d05f38503fd755207de96b8955d800cd;hb=e8a50ad2461a8efaa4d71ea19692a1b63a0f9bc2;hp=4949f3c031a9027f4aa5e42c9c92626ff5258535;hpb=1513dd5d05f6408a64e19ea18cfaeb0cb8c5fb73;p=petitboot diff --git a/discover/grub2/grub2.h b/discover/grub2/grub2.h index 4949f3c..5b83fad 100644 --- a/discover/grub2/grub2.h +++ b/discover/grub2/grub2.h @@ -71,6 +71,11 @@ struct grub2_statement_block { struct grub2_statements *statements; }; +struct grub2_statement_function { + struct grub2_statement st; + struct grub2_word *name; + struct grub2_statements *body; +}; struct grub2_script { struct grub2_statements *statements; @@ -105,6 +110,9 @@ struct grub2_statement *create_statement_if(struct grub2_parser *parser, struct grub2_statement *create_statement_block(struct grub2_parser *parser, struct grub2_statements *stmts); +struct grub2_statement *create_statement_function(struct grub2_parser *parser, + struct grub2_word *name, struct grub2_statements *body); + struct grub2_word *create_word_text(struct grub2_parser *parser, const char *text); @@ -129,6 +137,8 @@ int statement_if_execute(struct grub2_script *script, struct grub2_statement *statement); int statement_menuentry_execute(struct grub2_script *script, struct grub2_statement *statement); +int statement_function_execute(struct grub2_script *script, + struct grub2_statement *statement); struct grub2_script *create_script(struct grub2_parser *parser, struct discover_context *ctx);