This API function allows to receive a copy of a MAC address from variables in a state. Signed-off-by: Daniel Schultz <d.schultz@xxxxxxxxx> --- Changes: v2: New patch common/state/state.c | 23 +++++++++++++++++++++++ include/state.h | 2 ++ 2 files changed, 25 insertions(+) diff --git a/common/state/state.c b/common/state/state.c index 266d211..063e03e 100644 --- a/common/state/state.c +++ b/common/state/state.c @@ -693,6 +693,29 @@ int state_get_name(const struct state *state, char const **name) return 0; } +int state_read_mac(struct state *state, const char *name, u8 *buf) +{ + struct state_variable *svar; + struct state_mac *mac; + int i; + + if (!state || !name || !buf) + return -EINVAL; + + svar = state_find_var(state, name); + if (IS_ERR(svar)) + return PTR_ERR(svar); + + if (!strcmp(svar->type->type_name, "mac")) { + mac = to_state_mac(svar); + for (i = 0; i < 6; i++) + buf[i] = mac->value[i]; + return 6; + } + + return 0; +} + void state_info(void) { struct state *state; diff --git a/include/state.h b/include/state.h index 63164f9..f1882ae 100644 --- a/include/state.h +++ b/include/state.h @@ -23,4 +23,6 @@ int state_load(struct state *state); int state_save(struct state *state); void state_info(void); +int state_read_mac(struct state *state, const char *name, u8 *buf); + #endif /* __STATE_H */ -- 2.7.4 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox