diff options
author | Ulrich Ölmann <u.oelmann@pengutronix.de> | 2018-12-18 14:57:52 +0100 |
---|---|---|
committer | Roland Hieber <rhi@pengutronix.de> | 2019-01-07 15:47:56 +0100 |
commit | 8dcc82777ae4f80be670bf05230e46ba08c2c078 (patch) | |
tree | 69c82c1caee0de1472c6e65502e441abfe377c71 | |
parent | d147aa0d2cf9ef16b6d02c7eb1b9bf9eca96d3fc (diff) | |
download | dt-utils-8dcc82777ae4f80be670bf05230e46ba08c2c078.tar.gz dt-utils-8dcc82777ae4f80be670bf05230e46ba08c2c078.tar.xz |
state: Add 'init_from_defaults' parameter
This ports the following barebox commit:
| commit 6a77d1cfb6596ed0a269ab52028f7e4bb22c99e2
| Author: Sascha Hauer <s.hauer@pengutronix.de>
| Date: Wed May 4 12:01:05 2016 +0200
|
| state: Add 'init_from_defaults' parameter
|
| The init_from_defaults parameter allows to detect if a state has been
| initialized from default values, i.e. state_load failed.
|
| Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Signed-off-by: Ulrich Ölmann <u.oelmann@pengutronix.de>
Signed-off-by: Roland Hieber <rhi@pengutronix.de>
-rw-r--r-- | src/barebox-state/state.c | 7 | ||||
-rw-r--r-- | src/barebox-state/state.h | 2 |
2 files changed, 9 insertions, 0 deletions
diff --git a/src/barebox-state/state.c b/src/barebox-state/state.c index 7315688..6e483df 100644 --- a/src/barebox-state/state.c +++ b/src/barebox-state/state.c @@ -98,6 +98,7 @@ static int state_do_load(struct state *state, enum state_flags flags) goto out; } + state->init_from_defaults = 0; state->dirty = 0; out: @@ -178,10 +179,14 @@ static struct state *state_new(const char *name) state->dirty = 1; dev_add_param_bool(&state->dev, "dirty", state_set_deny, NULL, &state->dirty, NULL); + state->save_on_shutdown = 1; dev_add_param_bool(&state->dev, "save_on_shutdown", NULL, NULL, &state->save_on_shutdown, NULL); + dev_add_param_bool(&state->dev, "init_from_defaults", state_set_deny, NULL, + &state->init_from_defaults, NULL); + list_add_tail(&state->list, &state_list); return state; @@ -642,6 +647,8 @@ struct state *state_new_from_node(struct device_node *node, char *path, goto out_release_state; } + state->init_from_defaults = 1; + ret = of_register_fixup(of_state_fixup, state); if (ret) { goto out_release_state; diff --git a/src/barebox-state/state.h b/src/barebox-state/state.h index fcc6b9f..da1c6ac 100644 --- a/src/barebox-state/state.h +++ b/src/barebox-state/state.h @@ -107,7 +107,9 @@ struct state { uint32_t magic; struct list_head variables; /* Sorted list of variables */ + unsigned int dirty; + unsigned int init_from_defaults; unsigned int save_on_shutdown; struct state_backend_format *format; |