From c2a407c4d58b69cda4c1f7504bbf79c1aeffb594 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Fri, 26 Feb 2016 09:40:45 +0000 Subject: Enhanced dynamic support. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@8948 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/rt/include/chdynamic.h | 6 ++++-- os/rt/include/chschd.h | 2 +- os/rt/include/chthreads.h | 12 +++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) (limited to 'os/rt/include') diff --git a/os/rt/include/chdynamic.h b/os/rt/include/chdynamic.h index 9b653cc5c..b42a6d34e 100644 --- a/os/rt/include/chdynamic.h +++ b/os/rt/include/chdynamic.h @@ -49,6 +49,10 @@ #error "CH_CFG_USE_DYNAMIC requires CH_CFG_USE_WAITEXIT" #endif +#if CH_CFG_USE_REGISTRY == FALSE +#error "CH_CFG_USE_DYNAMIC requires CH_CFG_USE_REGISTRY" +#endif + #if (CH_CFG_USE_HEAP == FALSE) && (CH_CFG_USE_MEMPOOLS == FALSE) #error "CH_CFG_USE_DYNAMIC requires CH_CFG_USE_HEAP and/or CH_CFG_USE_MEMPOOLS" #endif @@ -71,8 +75,6 @@ #ifdef __cplusplus extern "C" { #endif - thread_t *chThdAddRef(thread_t *tp); - void chThdRelease(thread_t *tp); #if CH_CFG_USE_HEAP == TRUE thread_t *chThdCreateFromHeap(memory_heap_t *heapp, size_t size, const char *name, tprio_t prio, diff --git a/os/rt/include/chschd.h b/os/rt/include/chschd.h index ca48afe75..6af0cdedb 100644 --- a/os/rt/include/chschd.h +++ b/os/rt/include/chschd.h @@ -235,7 +235,7 @@ struct ch_thread { * @brief Various thread flags. */ tmode_t flags; -#if (CH_CFG_USE_DYNAMIC == TRUE) || defined(__DOXYGEN__) +#if (CH_CFG_USE_REGISTRY == TRUE) || defined(__DOXYGEN__) /** * @brief References to this thread. */ diff --git a/os/rt/include/chthreads.h b/os/rt/include/chthreads.h index d4f2a68d0..2832051e9 100644 --- a/os/rt/include/chthreads.h +++ b/os/rt/include/chthreads.h @@ -181,6 +181,13 @@ extern "C" { thread_t *chThdCreateStatic(void *wsp, size_t size, tprio_t prio, tfunc_t pf, void *arg); thread_t *chThdStart(thread_t *tp); + thread_t *chThdAddRef(thread_t *tp); + void chThdRelease(thread_t *tp); + void chThdExit(msg_t msg); + void chThdExitS(msg_t msg); +#if CH_CFG_USE_WAITEXIT == TRUE + msg_t chThdWait(thread_t *tp); +#endif tprio_t chThdSetPriority(tprio_t newprio); void chThdTerminate(thread_t *tp); msg_t chThdSuspendS(thread_reference_t *trp); @@ -195,11 +202,6 @@ extern "C" { void chThdSleepUntil(systime_t time); systime_t chThdSleepUntilWindowed(systime_t prev, systime_t next); void chThdYield(void); - void chThdExit(msg_t msg); - void chThdExitS(msg_t msg); -#if CH_CFG_USE_WAITEXIT == TRUE - msg_t chThdWait(thread_t *tp); -#endif #ifdef __cplusplus } #endif -- cgit v1.2.3