[PATCH v2 4/6] common: state: Add variable_type to state_variable
Daniel Schultz
d.schultz at phytec.de
Thu Nov 2 05:42:43 PDT 2017
Add a pointer in state_variable to the corresponding variable_type array
element.
Signed-off-by: Daniel Schultz <d.schultz at phytec.de>
---
Changes:
v2: New patch
common/state/state.h | 1 +
common/state/state_variables.c | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/common/state/state.h b/common/state/state.h
index 81aaec2..14b54aa 100644
--- a/common/state/state.h
+++ b/common/state/state.h
@@ -132,6 +132,7 @@ struct variable_type {
struct state_variable {
struct state *state;
struct list_head list;
+ struct variable_type *type;
const char *name;
unsigned int start;
unsigned int size;
diff --git a/common/state/state_variables.c b/common/state/state_variables.c
index 56bcd95..e6571be 100644
--- a/common/state/state_variables.c
+++ b/common/state/state_variables.c
@@ -116,6 +116,7 @@ static struct state_variable *state_uint8_create(struct state *state,
}
su32->param = param;
+ su32->var.type = state_find_type_by_name("uint8");
su32->var.size = sizeof(uint8_t);
#ifdef __LITTLE_ENDIAN
su32->var.raw = &su32->value;
@@ -144,6 +145,7 @@ static struct state_variable *state_uint32_create(struct state *state,
}
su32->param = param;
+ su32->var.type = state_find_type_by_name("uint32");
su32->var.size = sizeof(uint32_t);
su32->var.raw = &su32->value;
su32->var.state = state;
@@ -234,6 +236,7 @@ static struct state_variable *state_enum32_create(struct state *state,
enum32->names = xzalloc(sizeof(char *) * num_names);
enum32->num_names = num_names;
+ enum32->var.type = state_find_type_by_name("enum32");
enum32->var.size = sizeof(uint32_t);
enum32->var.raw = &enum32->value;
enum32->var.state = state;
@@ -307,6 +310,7 @@ static struct state_variable *state_mac_create(struct state *state,
mac = xzalloc(sizeof(*mac));
+ mac->var.type = state_find_type_by_name("mac");
mac->var.size = ARRAY_SIZE(mac->value);
mac->var.raw = mac->value;
mac->var.state = state;
@@ -420,6 +424,7 @@ static struct state_variable *state_string_create(struct state *state,
return ERR_PTR(-EILSEQ);
string = xzalloc(sizeof(*string) + start_size[1]);
+ string->var.type = state_find_type_by_name("string");
string->var.size = start_size[1];
string->var.raw = &string->raw;
string->var.state = state;
--
2.7.4
More information about the barebox
mailing list