[PATCH 4/4 v2] score: Use _Thread_Clear_state() for _Thread_Ready

Sebastian Huber sebastian.huber at embedded-brains.de
Wed Apr 8 09:49:12 UTC 2015


---
 cpukit/score/Makefile.am                      |  2 +-
 cpukit/score/include/rtems/score/statesimpl.h |  3 +++
 cpukit/score/include/rtems/score/threadimpl.h | 30 ++++++++++-----------
 cpukit/score/src/threadready.c                | 38 ---------------------------
 4 files changed, 19 insertions(+), 54 deletions(-)
 delete mode 100644 cpukit/score/src/threadready.c

diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am
index 112f7e8..dc51e9a 100644
--- a/cpukit/score/Makefile.am
+++ b/cpukit/score/Makefile.am
@@ -284,7 +284,7 @@ libscore_a_SOURCES += src/thread.c src/threadchangepriority.c \
     src/threaddelayended.c src/threaddispatch.c \
     src/threadenabledispatch.c src/threaddisabledispatch.c \
     src/threadget.c src/threadhandler.c src/threadinitialize.c \
-    src/threadloadenv.c src/threadready.c \
+    src/threadloadenv.c \
     src/threadrestart.c src/threadsetpriority.c \
     src/threadsetstate.c \
     src/threadstackallocate.c src/threadstackfree.c src/threadstart.c \
diff --git a/cpukit/score/include/rtems/score/statesimpl.h b/cpukit/score/include/rtems/score/statesimpl.h
index 4251b3c..074b352 100644
--- a/cpukit/score/include/rtems/score/statesimpl.h
+++ b/cpukit/score/include/rtems/score/statesimpl.h
@@ -118,6 +118,9 @@ extern "C" {
                                  STATES_WAITING_ON_THREAD_QUEUE | \
                                  STATES_INTERRUPTIBLE_BY_SIGNAL )
 
+/** All state bits set to one (provided for _Thread_Ready()) */
+#define STATES_ALL_SET 0xffffffff
+
 /**
  * This function sets the given states_to_set into the current_state
  * passed in.  The result is returned to the user in current_state.
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h
index 0f37655..a13a0de 100644
--- a/cpukit/score/include/rtems/score/threadimpl.h
+++ b/cpukit/score/include/rtems/score/threadimpl.h
@@ -227,21 +227,6 @@ void _Thread_Kill_zombies( void );
 void _Thread_Close( Thread_Control *the_thread, Thread_Control *executing );
 
 /**
- *  @brief Removes any set states for @a the_thread.
- *
- *  This routine removes any set states for @a the_thread.  It performs
- *  any necessary scheduling operations including the selection of
- *  a new heir thread.
- *
- *  - INTERRUPT LATENCY:
- *    + ready chain
- *    + select heir
- */
-void _Thread_Ready(
-  Thread_Control *the_thread
-);
-
-/**
  * @brief Clears the specified thread state.
  *
  * In case the previous state is a non-ready state and the next state is the
@@ -274,6 +259,21 @@ States_Control _Thread_Set_state(
 );
 
 /**
+ * @brief Clears all thread states.
+ *
+ * In case the previous state is a non-ready state, then the thread is
+ * unblocked by the scheduler.
+ *
+ * @param[in] the_thread The thread.
+ */
+RTEMS_INLINE_ROUTINE void _Thread_Ready(
+  Thread_Control *the_thread
+)
+{
+  _Thread_Clear_state( the_thread, STATES_ALL_SET );
+}
+
+/**
  *  @brief Initializes enviroment for a thread.
  *
  *  This routine initializes the context of @a the_thread to its
diff --git a/cpukit/score/src/threadready.c b/cpukit/score/src/threadready.c
deleted file mode 100644
index 5375294..0000000
--- a/cpukit/score/src/threadready.c
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- *  @file
- *
- *  @brief Thread Ready
- *  @ingroup ScoreThread
- */
-
-/*
- *  COPYRIGHT (c) 1989-2011.
- *  On-Line Applications Research Corporation (OAR).
- *
- *  The license and distribution terms for this file may be
- *  found in the file LICENSE in this distribution or at
- *  http://www.rtems.org/license/LICENSE.
- */
-
-#if HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <rtems/score/threadimpl.h>
-#include <rtems/score/isrlevel.h>
-#include <rtems/score/schedulerimpl.h>
-
-void _Thread_Ready(
-  Thread_Control *the_thread
-)
-{
-  ISR_lock_Context lock_context;
-
-  _Scheduler_Acquire( the_thread, &lock_context );
-
-  the_thread->current_state = STATES_READY;
-
-  _Scheduler_Unblock( the_thread );
-
-  _Scheduler_Release( the_thread, &lock_context );
-}
-- 
1.8.4.5



More information about the devel mailing list