From c98212ecd6637d700b3ab6304332724a94148a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Tue, 18 Apr 2017 19:42:07 +0200 Subject: [PATCH] shutdown: ifdef for NuttX builds without work queue support For example on px4cannode-v1_default. --- src/platforms/common/shutdown.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/platforms/common/shutdown.cpp b/src/platforms/common/shutdown.cpp index cae288d4e0..e38c11d5f4 100644 --- a/src/platforms/common/shutdown.cpp +++ b/src/platforms/common/shutdown.cpp @@ -45,6 +45,31 @@ #include #include +#if defined(__PX4_NUTTX) && !defined(CONFIG_SCHED_WORKQUEUE) +// minimal NuttX build without work queue support + +int px4_register_shutdown_hook(shutdown_hook_t hook) +{ + return -EINVAL; +} +int px4_unregister_shutdown_hook(shutdown_hook_t hook) +{ + return -EINVAL; +} + +int px4_shutdown_request(bool reboot, bool to_bootloader) +{ + if (reboot) { + px4_systemreset(to_bootloader); + + } else { + return board_shutdown(); + } + + return 0; +} + +#else static struct work_s shutdown_work = {}; static uint8_t shutdown_counter = 0; @@ -170,3 +195,5 @@ int px4_shutdown_request(bool reboot, bool to_bootloader) return work_queue(HPWORK, &shutdown_work, (worker_t)&shutdown_worker, NULL, USEC2TICK(0)); } + +#endif /* if defined(__PX4_NUTTX) && !defined(CONFIG_SCHED_WORKQUEUE) */