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/builtins.c | |
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/builtins.c')
-rw-r--r-- | discover/grub2/builtins.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/discover/grub2/builtins.c b/discover/grub2/builtins.c index 379e870..55597c1 100644 --- a/discover/grub2/builtins.c +++ b/discover/grub2/builtins.c @@ -8,7 +8,9 @@ #include "grub2.h" -static int builtin_set(struct grub2_script *script, int argc, char *argv[]) +static int builtin_set(struct grub2_script *script, + void *data __attribute__((unused)), + int argc, char *argv[]) { char *name, *value, *p; int i; @@ -31,10 +33,13 @@ static int builtin_set(struct grub2_script *script, int argc, char *argv[]) return 0; } -static struct grub2_command commands[] = { +static struct { + const char *name; + grub2_function fn; +} builtins[] = { { .name = "set", - .exec = builtin_set + .fn = builtin_set }, }; @@ -42,6 +47,7 @@ void register_builtins(struct grub2_script *script) { unsigned int i; - for (i = 0; i < ARRAY_SIZE(commands); i++) - script_register_command(script, &commands[i]); + for (i = 0; i < ARRAY_SIZE(builtins); i++) + script_register_function(script, builtins[i].name, + builtins[i].fn, NULL); } |