diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2014-06-18 15:12:05 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-11-06 10:58:54 +0100 |
commit | 3249006a2facd31a072fd2808991697b4727643e (patch) | |
tree | ec4e5dd4fbd1ea124349a23cb3664bda4ba2e1aa /commands/loadenv.c | |
parent | fe39e8aadc3e2f3d87bb5b6f8c6ebb4fb1a84253 (diff) | |
download | barebox-3249006a2facd31a072fd2808991697b4727643e.tar.gz |
Add support for non volatile variables
This adds (back) support for non volatile variables. Non volatile
variables are variables which are stored in the environment over
reboot. They are used in the same way as the global variables, but
with a 'nv' command and device. The variables are stored under
/env/nv/, one variable per file. Adding a nv variable automatically
adds a global variable with the same name. Changing a nv variable
also changes the same global variable, but not the other way round.
This allows for example to configure the username as:
nv user=sha; saveenv
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'commands/loadenv.c')
-rw-r--r-- | commands/loadenv.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/commands/loadenv.c b/commands/loadenv.c index 8b15af49df..91ce5e707c 100644 --- a/commands/loadenv.c +++ b/commands/loadenv.c @@ -27,12 +27,13 @@ #include <errno.h> #include <fs.h> #include <malloc.h> +#include <globalvar.h> static int do_loadenv(int argc, char *argv[]) { char *filename = NULL, *dirname; unsigned flags = 0; - int opt; + int opt, ret; int scrub = 0; int defaultenv = 0; @@ -97,9 +98,13 @@ static int do_loadenv(int argc, char *argv[]) printf("loading environment from %s\n", defaultenv ? "defaultenv" : filename); if (defaultenv) - return defaultenv_load(dirname, flags); + ret = defaultenv_load(dirname, flags); else - return envfs_load(filename, dirname, flags); + ret = envfs_load(filename, dirname, flags); + + nvvar_load(); + + return ret; } BAREBOX_CMD_HELP_START(loadenv) |