diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2013-09-16 16:26:46 +0800 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2013-09-24 13:14:59 +0800 |
commit | 64899475f9b895628fd7b654f7b549e50494229a (patch) | |
tree | aaec0cf8b49351e1fa410d433f6901fe8e192d8b /discover/grub2/grub2.h | |
parent | 5e1b3c27ab320eae17b9c9d75b4111c924860268 (diff) | |
download | talos-petitboot-64899475f9b895628fd7b654f7b549e50494229a.tar.gz talos-petitboot-64899475f9b895628fd7b654f7b549e50494229a.zip |
discover/grub2: Function infrastructure improvements
For user-defined functions, we'll need a data pointer to the function's
execution callback. Add this as a void *, and change references from
'command' to 'function'.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'discover/grub2/grub2.h')
-rw-r--r-- | discover/grub2/grub2.h | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/discover/grub2/grub2.h b/discover/grub2/grub2.h index 1ac9f88..2de77a2 100644 --- a/discover/grub2/grub2.h +++ b/discover/grub2/grub2.h @@ -71,17 +71,10 @@ struct grub2_statement_block { struct grub2_statements *statements; }; -struct grub2_command { - const char *name; - int (*exec)(struct grub2_script *script, - int argc, char *argv[]); - struct list_item list; -}; struct grub2_script { struct grub2_statements *statements; struct list environment; - struct list commands; struct list symtab; struct discover_context *ctx; struct discover_boot_option *opt; @@ -96,6 +89,10 @@ struct grub2_root { char *uuid; }; +/* type for builtin functions */ +typedef int (*grub2_function)(struct grub2_script *script, void *data, + int argc, char *argv[]); + struct grub2_statements *create_statements(struct grub2_parser *parser); struct grub2_statement *create_statement_simple(struct grub2_parser *parser, @@ -145,11 +142,8 @@ const char *script_env_get(struct grub2_script *script, const char *name); void script_env_set(struct grub2_script *script, const char *name, const char *value); -void script_register_command(struct grub2_script *script, - struct grub2_command *command); - -struct grub2_command *script_lookup_command(struct grub2_script *script, - const char *name); +void script_register_function(struct grub2_script *script, + const char *name, grub2_function fn, void *data); void register_builtins(struct grub2_script *script); |