summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2016-04-29 10:54:20 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2016-04-29 11:29:25 +0200
commit941056dad1cb46f200b3268d003460db2bd02604 (patch)
tree876b2c4d6c17736ac86f8106e53c587acf3c6688
parent005cd22b30caa2421f8d142eef4df18f191d7415 (diff)
downloadbarebox-941056dad1cb46f200b3268d003460db2bd02604.tar.gz
barebox-941056dad1cb46f200b3268d003460db2bd02604.tar.xz
globalvar: Allow to remove globalvars
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--common/globalvar.c10
-rw-r--r--include/globalvar.h1
2 files changed, 11 insertions, 0 deletions
diff --git a/common/globalvar.c b/common/globalvar.c
index 9a793ac4a9..05c3e798d7 100644
--- a/common/globalvar.c
+++ b/common/globalvar.c
@@ -33,6 +33,16 @@ int globalvar_add(const char *name,
return 0;
}
+void globalvar_remove(const char *name)
+{
+ struct param_d *param = get_param_by_name(&global_device, name);
+
+ if (!param)
+ return;
+
+ dev_remove_param(param);
+}
+
static int nv_save(const char *name, const char *val)
{
int fd, ret;
diff --git a/include/globalvar.h b/include/globalvar.h
index e77209bd79..d0c79c07a8 100644
--- a/include/globalvar.h
+++ b/include/globalvar.h
@@ -14,6 +14,7 @@ int globalvar_add(const char *name,
int (*set)(struct device_d *dev, struct param_d *p, const char *val),
const char *(*get)(struct device_d *, struct param_d *p),
unsigned long flags);
+void globalvar_remove(const char *name);
char *globalvar_get_match(const char *match, const char *separator);
void globalvar_set_match(const char *match, const char *val);