summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Fenkart <andreas.fenkart@digitalstrom.com>2016-05-31 09:21:56 +0200
committerTom Rini <trini@konsulko.com>2016-05-31 10:23:10 -0400
commit14070e69ad6d01abf65c06150dc9302bca1b7973 (patch)
treeab43e8e82b6b589e25237c5690337f779b7cad39
parent6f41751f4683aaf310b31b29c26e3da5f478dc07 (diff)
downloadu-boot-imx-14070e69ad6d01abf65c06150dc9302bca1b7973.zip
u-boot-imx-14070e69ad6d01abf65c06150dc9302bca1b7973.tar.gz
u-boot-imx-14070e69ad6d01abf65c06150dc9302bca1b7973.tar.bz2
tools/env: allow to pass NULL for environment options
If users of the library are happy with the default, e.g. config file name. They can pass NULL as the opts pointer. This simplifies the transition of existing library users. FIXES a compile error. since common_args has been removed by a previous patch Signed-off-by: Andreas Fenkart <andreas.fenkart@digitalstrom.com>
-rw-r--r--tools/env/fw_env.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c
index 52e0bec..692abda 100644
--- a/tools/env/fw_env.c
+++ b/tools/env/fw_env.c
@@ -35,6 +35,12 @@
#include "fw_env.h"
+struct env_opts default_opts = {
+#ifdef CONFIG_FILE
+ .config_file = CONFIG_FILE
+#endif
+};
+
#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
#define min(x, y) ({ \
@@ -229,6 +235,9 @@ int fw_printenv(int argc, char *argv[], int value_only, struct env_opts *opts)
char *env, *nxt;
int i, rc = 0;
+ if (!opts)
+ opts = &default_opts;
+
if (fw_env_open(opts))
return -1;
@@ -289,6 +298,9 @@ int fw_env_close(struct env_opts *opts)
{
int ret;
+ if (!opts)
+ opts = &default_opts;
+
if (opts->aes_flag) {
ret = env_aes_cbc_crypt(environment.data, 1,
opts->aes_key);
@@ -452,6 +464,9 @@ int fw_setenv(int argc, char *argv[], struct env_opts *opts)
char *value = NULL;
int valc;
+ if (!opts)
+ opts = &default_opts;
+
if (argc < 1) {
fprintf(stderr, "## Error: variable name missing\n");
errno = EINVAL;
@@ -524,6 +539,9 @@ int fw_parse_script(char *fname, struct env_opts *opts)
int len;
int ret = 0;
+ if (!opts)
+ opts = &default_opts;
+
if (fw_env_open(opts)) {
fprintf(stderr, "Error: environment not initialized\n");
return -1;
@@ -1139,6 +1157,9 @@ int fw_env_open(struct env_opts *opts)
struct env_image_single *single;
struct env_image_redundant *redundant;
+ if (!opts)
+ opts = &default_opts;
+
if (parse_config(opts)) /* should fill envdevices */
return -1;
@@ -1312,10 +1333,10 @@ static int parse_config(struct env_opts *opts)
{
struct stat st;
-#if defined(CONFIG_FILE)
- if (!common_args.config_file)
- common_args.config_file = CONFIG_FILE;
+ if (!opts)
+ opts = &default_opts;
+#if defined(CONFIG_FILE)
/* Fills in DEVNAME(), ENVSIZE(), DEVESIZE(). Or don't. */
if (get_config(opts->config_file)) {
fprintf(stderr, "Cannot parse config file '%s': %m\n",