mirror of
https://gitee.com/mirrors_PX4/PX4-Autopilot.git
synced 2026-10-29 22:03:33 +08:00
param command: use param_* calls even if flash-based params are enabled
This will ensure proper locking.
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user