state: add support for uint8 variables
Signed-off-by: Jan Luebbe <jluebbe@debian.org>
This commit is contained in:
parent
fa7fc5c957
commit
918e1c52cd
|
@ -61,6 +61,7 @@ struct state_backend {
|
||||||
enum state_variable_type {
|
enum state_variable_type {
|
||||||
STATE_TYPE_INVALID = 0,
|
STATE_TYPE_INVALID = 0,
|
||||||
STATE_TYPE_ENUM,
|
STATE_TYPE_ENUM,
|
||||||
|
STATE_TYPE_U8,
|
||||||
STATE_TYPE_U32,
|
STATE_TYPE_U32,
|
||||||
STATE_TYPE_MAC,
|
STATE_TYPE_MAC,
|
||||||
};
|
};
|
||||||
|
@ -162,6 +163,32 @@ static int state_uint32_import(struct state_variable *sv,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct state_variable *state_uint8_create(struct state *state,
|
||||||
|
const char *name, struct device_node *node)
|
||||||
|
{
|
||||||
|
struct state_uint32 *su32;
|
||||||
|
struct param_d *param;
|
||||||
|
|
||||||
|
su32 = xzalloc(sizeof(*su32));
|
||||||
|
|
||||||
|
param = dev_add_param_int(&state->dev, name, state_set_dirty,
|
||||||
|
NULL, &su32->value, "%d", state);
|
||||||
|
if (IS_ERR(param)) {
|
||||||
|
free(su32);
|
||||||
|
return ERR_CAST(param);
|
||||||
|
}
|
||||||
|
|
||||||
|
su32->param = param;
|
||||||
|
su32->var.size = sizeof(uint8_t);
|
||||||
|
#ifdef __LITTLE_ENDIAN
|
||||||
|
su32->var.raw = &su32->value;
|
||||||
|
#else
|
||||||
|
su32->var.raw = &su32->value + 3;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return &su32->var;
|
||||||
|
}
|
||||||
|
|
||||||
static struct state_variable *state_uint32_create(struct state *state,
|
static struct state_variable *state_uint32_create(struct state *state,
|
||||||
const char *name, struct device_node *node)
|
const char *name, struct device_node *node)
|
||||||
{
|
{
|
||||||
|
@ -372,6 +399,12 @@ out:
|
||||||
|
|
||||||
static struct variable_type types[] = {
|
static struct variable_type types[] = {
|
||||||
{
|
{
|
||||||
|
.type = STATE_TYPE_U8,
|
||||||
|
.type_name = "uint8",
|
||||||
|
.export = state_uint32_export,
|
||||||
|
.import = state_uint32_import,
|
||||||
|
.create = state_uint8_create,
|
||||||
|
}, {
|
||||||
.type = STATE_TYPE_U32,
|
.type = STATE_TYPE_U32,
|
||||||
.type_name = "uint32",
|
.type_name = "uint32",
|
||||||
.export = state_uint32_export,
|
.export = state_uint32_export,
|
||||||
|
|
Loading…
Reference in New Issue