aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--os/rt/include/chthreads.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/os/rt/include/chthreads.h b/os/rt/include/chthreads.h
index fa093b09c..a86a4c7ec 100644
--- a/os/rt/include/chthreads.h
+++ b/os/rt/include/chthreads.h
@@ -277,6 +277,25 @@ static inline thread_t *chThdGetSelfX(void) {
return ch.rlist.r_current;
}
+#if !CH_CFG_NO_IDLE_THREAD || defined(__DOXYGEN__)
+/**
+ * @brief Returns a pointer to the idle thread.
+ * @pre In order to use this function the option @p CH_CFG_NO_IDLE_THREAD
+ * must be disabled.
+ * @note The reference counter of the idle thread is not incremented but
+ * it is not strictly required being the idle thread a static
+ * object.
+ *
+ * @return Pointer to the idle thread.
+ *
+ * @xclass
+ */
+static inline thread_t *chThdGetIdleX(void) {
+
+ return ch.rlist.r_queue.p_prev;
+}
+#endif /* !CH_CFG_NO_IDLE_THREAD */
+
/**
* @brief Returns the current thread priority.
* @note Can be invoked in any context.