Instead of overwriting the whole hierarchy beneath a globalvar, the globalvar_set function only sets the specific globalvar. Signed-off-by: Rouven Czerwinski <r.czerwinski@xxxxxxxxxxxxxx> --- v2: - use the name directly to set the variable - rename to globalvar_set common/globalvar.c | 5 +++++ include/globalvar.h | 1 + 2 files changed, 6 insertions(+) diff --git a/common/globalvar.c b/common/globalvar.c index 98a028a68a..1219ceaeb3 100644 --- a/common/globalvar.c +++ b/common/globalvar.c @@ -399,6 +399,11 @@ void globalvar_set_match(const char *match, const char *val) } } +void globalvar_set(const char *name, const char *val) +{ + dev_set_param(&global_device, name, val); +} + static int globalvar_simple_set(struct device_d *dev, struct param_d *p, const char *val) { struct device_d *rdev; diff --git a/include/globalvar.h b/include/globalvar.h index fc85e93e14..956dda074a 100644 --- a/include/globalvar.h +++ b/include/globalvar.h @@ -15,6 +15,7 @@ int globalvar_add_simple(const char *name, const char *value); 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); +void globalvar_set(const char *name, const char *val); int globalvar_add_simple_string(const char *name, char **value); int globalvar_add_simple_int(const char *name, int *value, -- 2.28.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox