[PATCH 7/7] bootargs: switch globalvar to it's own device
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Wed Mar 13 14:05:22 EDT 2013
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
common/bootargs.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/common/bootargs.c b/common/bootargs.c
index 6624f72..e9248ab 100644
--- a/common/bootargs.c
+++ b/common/bootargs.c
@@ -22,9 +22,11 @@
#include <magicvar.h>
#include <globalvar.h>
#include <environment.h>
+#include <init.h>
static char *linux_bootargs;
static int linux_bootargs_overwritten;
+static struct device_d *global_linux_dev;
/*
* This returns the Linux bootargs
@@ -45,11 +47,11 @@ const char *linux_bootargs_get(void)
free(linux_bootargs);
- bootargs = globalvar_get_match("linux.bootargs.", " ");
+ bootargs = global_get_match(global_linux_dev, "bootargs.", " ");
if (!strlen(bootargs))
return getenv("bootargs");
- mtdparts = globalvar_get_match("linux.mtdparts.", ";");
+ mtdparts = global_get_match(global_linux_dev, "mtdparts.", ";");
if (strlen(mtdparts)) {
linux_bootargs = asprintf("%s mtdparts=%s", bootargs, mtdparts);
@@ -76,5 +78,13 @@ int linux_bootargs_overwrite(const char *bootargs)
return 0;
}
+static int bootargs_init(void)
+{
+ global_linux_dev = global_add_device("linux");
+
+ return 0;
+}
+late_initcall(bootargs_init);
+
BAREBOX_MAGICVAR_NAMED(global_linux_bootargs_, global.linux.bootargs.*, "Linux bootargs variables");
BAREBOX_MAGICVAR_NAMED(global_linux_mtdparts_, global.linux.mtdparts.*, "Linux mtdparts variables");
--
1.7.10.4
More information about the barebox
mailing list