Browse Source

parameters: delete unused PARAM_TYPE_STRUCT

sbg
Daniel Agar 5 years ago
parent
commit
0e64baa93b
  1. 13
      src/lib/parameters/flashparams/flashparams.cpp
  2. 35
      src/lib/parameters/param.h
  3. 51
      src/lib/parameters/parameters.cpp
  4. 51
      src/lib/parameters/parameters_shmem.cpp
  5. 4
      src/systemcmds/param/param.cpp

13
src/lib/parameters/flashparams/flashparams.cpp

@ -110,7 +110,6 @@ param_export_internal(bool only_unsaved)
/* append the appropriate BSON type object */ /* append the appropriate BSON type object */
switch (param_type(s->param)) { switch (param_type(s->param)) {
case PARAM_TYPE_INT32: case PARAM_TYPE_INT32:
i = s->val.i; i = s->val.i;
@ -131,18 +130,6 @@ param_export_internal(bool only_unsaved)
break; break;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX:
if (bson_encoder_append_binary(&encoder,
param_name(s->param),
BSON_BIN_BINARY,
param_size(s->param),
param_get_value_ptr_external(s->param))) {
debug("BSON append failed for '%s'", param_name(s->param));
goto out;
}
break;
default: default:
debug("unrecognized parameter type"); debug("unrecognized parameter type");
goto out; goto out;

35
src/lib/parameters/param.h

@ -57,16 +57,12 @@ __BEGIN_DECLS
/** /**
* Parameter types. * Parameter types.
*/ */
#define PARAM_TYPE_INT32 0 #define PARAM_TYPE_UNKNOWN 0
#define PARAM_TYPE_FLOAT 1 #define PARAM_TYPE_INT32 1
#define PARAM_TYPE_STRUCT 100 #define PARAM_TYPE_FLOAT 2
#define PARAM_TYPE_STRUCT_MAX (16384 + PARAM_TYPE_STRUCT)
#define PARAM_TYPE_UNKNOWN (0xffff)
typedef uint16_t param_type_t; typedef uint8_t param_type_t;
#ifdef __PX4_NUTTX // on NuttX use 16 bits to save RAM
/** /**
* Parameter handle. * Parameter handle.
* *
@ -86,29 +82,6 @@ typedef uint16_t param_t;
*/ */
#define PARAM_HASH ((uint16_t)INT16_MAX) #define PARAM_HASH ((uint16_t)INT16_MAX)
#else // on other platforms use 32 bits for better performance
/**
* Parameter handle.
*
* Parameters are represented by parameter handles, which can
* be obtained by looking up parameters. They are an offset into a global
* constant parameter array.
*/
typedef uint32_t param_t;
/**
* Handle returned when a parameter cannot be found.
*/
#define PARAM_INVALID ((uint32_t)0xffffffff)
/**
* Magic handle for hash check param
*/
#define PARAM_HASH ((uint32_t)INT32_MAX)
#endif /* __PX4_NUTTX */
/** /**
* Initialize the param backend. Call this on startup before calling any other methods. * Initialize the param backend. Call this on startup before calling any other methods.

51
src/lib/parameters/parameters.cpp

@ -515,17 +515,11 @@ size_t
param_size(param_t param) param_size(param_t param)
{ {
if (handle_in_range(param)) { if (handle_in_range(param)) {
switch (param_type(param)) { switch (param_type(param)) {
case PARAM_TYPE_INT32: case PARAM_TYPE_INT32:
case PARAM_TYPE_FLOAT: case PARAM_TYPE_FLOAT:
return 4; return 4;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX:
/* decode structure size from type value */
return param_type(param) - PARAM_TYPE_STRUCT;
default: default:
return 0; return 0;
} }
@ -562,15 +556,8 @@ param_get_value_ptr(param_t param)
v = &param_info_base[param].val; v = &param_info_base[param].val;
} }
if (param_type(param) >= PARAM_TYPE_STRUCT &&
param_type(param) <= PARAM_TYPE_STRUCT_MAX) {
result = v->p;
} else {
result = v; result = v;
} }
}
return result; return result;
} }
@ -718,7 +705,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
/* update the changed value */ /* update the changed value */
switch (param_type(param)) { switch (param_type(param)) {
case PARAM_TYPE_INT32: case PARAM_TYPE_INT32:
params_changed = params_changed || s->val.i != *(int32_t *)val; params_changed = params_changed || s->val.i != *(int32_t *)val;
s->val.i = *(int32_t *)val; s->val.i = *(int32_t *)val;
@ -729,27 +715,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
s->val.f = *(float *)val; s->val.f = *(float *)val;
break; break;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX:
if (s->val.p == nullptr) {
size_t psize = param_size(param);
if (psize > 0) {
s->val.p = malloc(psize);
} else {
s->val.p = nullptr;
}
if (s->val.p == nullptr) {
PX4_ERR("failed to allocate parameter storage");
goto out;
}
}
memcpy(s->val.p, val, param_size(param));
params_changed = true;
break;
default: default:
goto out; goto out;
} }
@ -1121,22 +1086,6 @@ param_export(int fd, bool only_unsaved)
} }
break; break;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: {
const void *value_ptr = param_get_value_ptr(s->param);
/* lock as short as possible */
if (bson_encoder_append_binary(&encoder,
name,
BSON_BIN_BINARY,
size,
value_ptr)) {
PX4_ERR("BSON append failed for '%s'", name);
goto out;
}
}
break;
default: default:
PX4_ERR("unrecognized parameter type"); PX4_ERR("unrecognized parameter type");
goto out; goto out;

51
src/lib/parameters/parameters_shmem.cpp

@ -541,17 +541,11 @@ size_t
param_size(param_t param) param_size(param_t param)
{ {
if (handle_in_range(param)) { if (handle_in_range(param)) {
switch (param_type(param)) { switch (param_type(param)) {
case PARAM_TYPE_INT32: case PARAM_TYPE_INT32:
case PARAM_TYPE_FLOAT: case PARAM_TYPE_FLOAT:
return 4; return 4;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX:
/* decode structure size from type value */
return param_type(param) - PARAM_TYPE_STRUCT;
default: default:
return 0; return 0;
} }
@ -588,15 +582,8 @@ param_get_value_ptr(param_t param)
v = &param_info_base[param].val; v = &param_info_base[param].val;
} }
if (param_type(param) >= PARAM_TYPE_STRUCT &&
param_type(param) <= PARAM_TYPE_STRUCT_MAX) {
result = v->p;
} else {
result = v; result = v;
} }
}
return result; return result;
} }
@ -761,7 +748,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
/* update the changed value */ /* update the changed value */
switch (param_type(param)) { switch (param_type(param)) {
case PARAM_TYPE_INT32: case PARAM_TYPE_INT32:
params_changed = params_changed || s->val.i != *(int32_t *)val; params_changed = params_changed || s->val.i != *(int32_t *)val;
s->val.i = *(int32_t *)val; s->val.i = *(int32_t *)val;
@ -772,27 +758,6 @@ param_set_internal(param_t param, const void *val, bool mark_saved, bool notify_
s->val.f = *(float *)val; s->val.f = *(float *)val;
break; break;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX:
if (s->val.p == nullptr) {
size_t psize = param_size(param);
if (psize > 0) {
s->val.p = malloc(psize);
} else {
s->val.p = nullptr;
}
if (s->val.p == nullptr) {
PX4_ERR("failed to allocate parameter storage");
goto out;
}
}
memcpy(s->val.p, val, param_size(param));
params_changed = true;
break;
default: default:
goto out; goto out;
} }
@ -1199,22 +1164,6 @@ param_export(int fd, bool only_unsaved)
} }
break; break;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX: {
const void *value_ptr = param_get_value_ptr(s->param);
/* lock as short as possible */
if (bson_encoder_append_binary(&encoder,
name,
BSON_BIN_BINARY,
size,
value_ptr)) {
PX4_ERR("BSON append failed for '%s'", name);
goto out;
}
}
break;
default: default:
PX4_ERR("unrecognized parameter type"); PX4_ERR("unrecognized parameter type");
goto out; goto out;

4
src/systemcmds/param/param.cpp

@ -638,10 +638,6 @@ do_show_print(void *arg, param_t param)
break; break;
case PARAM_TYPE_STRUCT ... PARAM_TYPE_STRUCT_MAX:
PARAM_PRINT("<struct type %d size %zu>\n", 0 + param_type(param), param_size(param));
return;
default: default:
PARAM_PRINT("<unknown type %d>\n", 0 + param_type(param)); PARAM_PRINT("<unknown type %d>\n", 0 + param_type(param));
return; return;

Loading…
Cancel
Save