summaryrefslogtreecommitdiffstats
path: root/src/barebox-state.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/barebox-state.c')
-rw-r--r--src/barebox-state.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/barebox-state.c b/src/barebox-state.c
index 2bfd85c..36da8fa 100644
--- a/src/barebox-state.c
+++ b/src/barebox-state.c
@@ -309,7 +309,7 @@ static int state_set_var(struct state *state, const char *var, const char *val)
}
-struct state *state_get(const char *name)
+struct state *state_get(const char *name, bool readonly)
{
struct device_node *root, *node, *partition_node;
char *path;
@@ -363,7 +363,7 @@ struct state *state_get(const char *name)
return ERR_PTR(ret);
}
- state = state_new_from_node(node, devpath, offset, size);
+ state = state_new_from_node(node, devpath, offset, size, readonly);
if (IS_ERR(state)) {
fprintf(stderr, "unable to initlialize state: %s\n",
strerror(PTR_ERR(state)));
@@ -421,6 +421,7 @@ int main(int argc, char *argv[])
struct list_head sg_list;
char *statename = NULL;
int lock_fd;
+ bool readonly = true;
INIT_LIST_HEAD(&sg_list);
@@ -443,6 +444,7 @@ int main(int argc, char *argv[])
sg->get = 0;
sg->arg = optarg;
list_add_tail(&sg->list, &sg_list);
+ readonly = false;
break;
case 'd':
do_dump = 1;
@@ -472,7 +474,7 @@ int main(int argc, char *argv[])
exit(1);
}
- state = state_get(statename);
+ state = state_get(statename, readonly);
if (IS_ERR(state)) {
ret = 1;
goto out_unlock;