[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