diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-11-11 10:34:31 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-11-23 11:00:28 +0100 |
commit | e429e9742a2ca72820f8f3a8958ed138aa562bd9 (patch) | |
tree | bfb44686d6de38fbd5490cb0a37ed98f4fb0bd6e /cpukit/include/rtems | |
parent | score: Add _Thread_MP_Extract_proxy() (diff) | |
download | rtems-e429e9742a2ca72820f8f3a8958ed138aa562bd9.tar.bz2 |
score: Simplify thread wait state handling
Remove the THREAD_WAIT_STATE_READY_AGAIN and simply use the initial value to
indicate that a thread does not wait on something. Rename
THREAD_WAIT_FLAGS_INITIAL to THREAD_WAIT_STATE_READY. This change is necessary
so that _Thread_Continue() can be called for threads which never waited on
something (for example dormant threads).
Update #4546.
Diffstat (limited to 'cpukit/include/rtems')
-rw-r--r-- | cpukit/include/rtems/rtems/ratemonimpl.h | 3 | ||||
-rw-r--r-- | cpukit/include/rtems/score/thread.h | 2 | ||||
-rw-r--r-- | cpukit/include/rtems/score/threadimpl.h | 19 |
3 files changed, 9 insertions, 15 deletions
diff --git a/cpukit/include/rtems/rtems/ratemonimpl.h b/cpukit/include/rtems/rtems/ratemonimpl.h index 62327c5b09..d17c7fe4de 100644 --- a/cpukit/include/rtems/rtems/ratemonimpl.h +++ b/cpukit/include/rtems/rtems/ratemonimpl.h @@ -48,9 +48,6 @@ extern "C" { #define RATE_MONOTONIC_BLOCKED \ ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_BLOCKED ) -#define RATE_MONOTONIC_READY_AGAIN \ - ( THREAD_WAIT_CLASS_PERIOD | THREAD_WAIT_STATE_READY_AGAIN ) - /** * @brief Allocates a period control block from * the inactive chain of free period control blocks. diff --git a/cpukit/include/rtems/score/thread.h b/cpukit/include/rtems/score/thread.h index 23ed8e1406..c3c37eb160 100644 --- a/cpukit/include/rtems/score/thread.h +++ b/cpukit/include/rtems/score/thread.h @@ -404,7 +404,7 @@ typedef union { * The mutually exclusive wait state flags are * - @ref THREAD_WAIT_STATE_INTEND_TO_BLOCK, * - @ref THREAD_WAIT_STATE_BLOCKED, and - * - @ref THREAD_WAIT_STATE_READY_AGAIN. + * - @ref THREAD_WAIT_STATE_READY. */ typedef unsigned int Thread_Wait_flags; diff --git a/cpukit/include/rtems/score/threadimpl.h b/cpukit/include/rtems/score/threadimpl.h index dc41d28856..a66d1a5346 100644 --- a/cpukit/include/rtems/score/threadimpl.h +++ b/cpukit/include/rtems/score/threadimpl.h @@ -2217,14 +2217,18 @@ RTEMS_INLINE_ROUTINE void _Thread_Wait_cancel( } /** - * @brief The initial thread wait flags value set by _Thread_Initialize(). + * @brief Mask to get the thread wait state flags. */ -#define THREAD_WAIT_FLAGS_INITIAL 0x0U +#define THREAD_WAIT_STATE_MASK 0xffU /** - * @brief Mask to get the thread wait state flags. + * @brief Indicates that the thread does not wait on something. + * + * In this wait state, the wait class is zero. This wait state is set + * initially by _Thread_Initialize() and after each wait operation once the + * thread is ready again. */ -#define THREAD_WAIT_STATE_MASK 0xffU +#define THREAD_WAIT_STATE_READY 0x0U /** * @brief Indicates that the thread begins with the blocking operation. @@ -2241,13 +2245,6 @@ RTEMS_INLINE_ROUTINE void _Thread_Wait_cancel( #define THREAD_WAIT_STATE_BLOCKED 0x2U /** - * @brief Indicates that a condition to end the thread wait occurred. - * - * This could be a timeout, a signal, an event or a resource availability. - */ -#define THREAD_WAIT_STATE_READY_AGAIN 0x4U - -/** * @brief Mask to get the thread wait class flags. */ #define THREAD_WAIT_CLASS_MASK 0xff00U |