param command: use param_* calls even if flash-based params are enabled

This will ensure proper locking.
This commit is contained in:
Beat Küng
2017-02-17 11:27:08 +01:00
committed by Lorenz Meier
parent 68bee1b847
commit 42967df63f
4 changed files with 29 additions and 27 deletions
@@ -342,11 +342,6 @@ int flash_param_save(void)
} }
int flash_param_save_default(void)
{
return param_export_internal(false);
}
int flash_param_load(void) int flash_param_load(void)
{ {
@@ -356,5 +351,5 @@ int flash_param_load(void)
int flash_param_import(void) int flash_param_import(void)
{ {
return 0; return -1;
} }
@@ -64,9 +64,8 @@ __EXPORT extern UT_array *param_values;
__EXPORT int param_set_external(param_t param, const void *val, bool mark_saved, bool notify_changes, bool is_saved); __EXPORT int param_set_external(param_t param, const void *val, bool mark_saved, bool notify_changes, bool is_saved);
__EXPORT const void *param_get_value_ptr_external(param_t param); __EXPORT const void *param_get_value_ptr_external(param_t param);
/* The interface hooks to the Flash based storage */ /* The interface hooks to the Flash based storage. The caller is responsible for locking */
__EXPORT int flash_param_save(void); __EXPORT int flash_param_save(void);
__EXPORT int flash_param_save_default(void);
__EXPORT int flash_param_load(void); __EXPORT int flash_param_load(void);
__EXPORT int flash_param_import(void); __EXPORT int flash_param_import(void);
__END_DECLS __END_DECLS
+15 -2
View File
@@ -803,7 +803,9 @@ param_save_default(void)
PARAM_CLOSE(fd); PARAM_CLOSE(fd);
#else #else
param_lock();
res = flash_param_save(); res = flash_param_save();
param_unlock();
#endif #endif
return res; return res;
} }
@@ -814,7 +816,8 @@ param_save_default(void)
int int
param_load_default(void) param_load_default(void)
{ {
warnx("param_load_default\n"); int res = 0;
#if !defined(FLASH_BASED_PARAMS)
int fd_load = PARAM_OPEN(param_get_default_file(), O_RDONLY); int fd_load = PARAM_OPEN(param_get_default_file(), O_RDONLY);
if (fd_load < 0) { if (fd_load < 0) {
@@ -835,7 +838,11 @@ param_load_default(void)
return -2; return -2;
} }
return 0; #else
// no need for locking
res = flash_param_load();
#endif
return res;
} }
static void static void
@@ -1134,7 +1141,13 @@ out:
int int
param_import(int fd) param_import(int fd)
{ {
#if !defined(FLASH_BASED_PARAMS)
return param_import_internal(fd, false); return param_import_internal(fd, false);
#else
(void)fd; // unused
// no need for locking here
return flash_param_import();
#endif
} }
int int
+12 -17
View File
@@ -236,31 +236,26 @@ param_main(int argc, char *argv[])
} }
#if defined(FLASH_BASED_PARAMS) #if defined(FLASH_BASED_PARAMS)
/* If flash based parameters are uses we call out /* If flash based parameters are uses we have to change some of the calls to the
* to the following set of flash routines * default param calls, which will in turn take care of locking and calling to the
* flash backend.
*/ */
static int static int
do_save(const char *param_file_name) do_save(const char *param_file_name)
{ {
return flash_param_save(); return param_save_default();
}
static int
do_save_default(void)
{
return flash_param_save_default();
} }
static int static int
do_load(const char *param_file_name) do_load(const char *param_file_name)
{ {
return flash_param_load(); return param_load_default();
} }
static int static int
do_import(const char *param_file_name) do_import(const char *param_file_name)
{ {
return flash_param_import(); return param_import(-1);
} }
#else #else
@@ -289,12 +284,6 @@ do_save(const char *param_file_name)
return 0; return 0;
} }
static int
do_save_default(void)
{
return param_save_default();
}
static int static int
do_load(const char *param_file_name) do_load(const char *param_file_name)
{ {
@@ -338,6 +327,12 @@ do_import(const char *param_file_name)
} }
#endif #endif
static int
do_save_default(void)
{
return param_save_default();
}
static int static int
do_show(const char *search_string) do_show(const char *search_string)
{ {