Index: cpukit/rtems/src/ratemoncancel.c
===================================================================
--- cpukit/rtems/src/ratemoncancel.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/rtems/src/ratemoncancel.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -41,9 +41,5 @@
       (void) _Watchdog_Remove( &the_period->Timer );
       the_period->state = RATE_MONOTONIC_INACTIVE;
-      _Scheduler_Release_job(
-        _Scheduler_Get( the_period->owner ),
-        the_period->owner,
-        0
-      );
+      _Scheduler_Release_job( the_period->owner, 0 );
       _Objects_Put( &the_period->Object );
       return RTEMS_SUCCESSFUL;
Index: cpukit/rtems/src/ratemondelete.c
===================================================================
--- cpukit/rtems/src/ratemondelete.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/rtems/src/ratemondelete.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -36,9 +36,5 @@
 
     case OBJECTS_LOCAL:
-      _Scheduler_Release_job(
-        _Scheduler_Get( the_period->owner ),
-        the_period->owner,
-        0
-      );
+      _Scheduler_Release_job( the_period->owner, 0 );
       _Objects_Close( &_Rate_monotonic_Information, &the_period->Object );
       (void) _Watchdog_Remove( &the_period->Timer );
Index: cpukit/rtems/src/ratemonperiod.c
===================================================================
--- cpukit/rtems/src/ratemonperiod.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/rtems/src/ratemonperiod.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -145,9 +145,5 @@
   #endif
 
-  _Scheduler_Release_job(
-    _Scheduler_Get( the_period->owner ),
-    the_period->owner,
-    the_period->next_length
-  );
+  _Scheduler_Release_job( the_period->owner, the_period->next_length );
 }
 
@@ -345,9 +341,5 @@
 
         _Watchdog_Insert_ticks( &the_period->Timer, length );
-        _Scheduler_Release_job(
-          _Scheduler_Get( the_period->owner ),
-          the_period->owner,
-          the_period->next_length
-        );
+        _Scheduler_Release_job( the_period->owner, the_period->next_length );
         _Objects_Put( &the_period->Object );
         return RTEMS_TIMEOUT;
Index: cpukit/score/include/rtems/score/schedulerimpl.h
===================================================================
--- cpukit/score/include/rtems/score/schedulerimpl.h	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/include/rtems/score/schedulerimpl.h	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -42,4 +42,17 @@
  */
 void _Scheduler_Handler_initialization( void );
+
+RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get(
+  const Thread_Control *the_thread
+)
+{
+#if defined(RTEMS_SMP)
+  return the_thread->scheduler;
+#else
+  (void) the_thread;
+
+  return &_Scheduler_Table[ 0 ];
+#endif
+}
 
 RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get_by_CPU_index(
@@ -81,5 +94,5 @@
 
 /**
- * @brief Scheduler schedule.
+ * @brief General scheduling decision.
  *
  * This kernel routine implements the scheduling decision logic for
@@ -88,9 +101,8 @@
  * @param[in] the_thread The thread which state changed previously.
  */
-RTEMS_INLINE_ROUTINE void _Scheduler_Schedule(
-  const Scheduler_Control *scheduler,
-  Thread_Control          *the_thread
-)
-{
+RTEMS_INLINE_ROUTINE void _Scheduler_Schedule( Thread_Control *the_thread )
+{
+  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+
   ( *scheduler->Operations.schedule )( scheduler, the_thread );
 }
@@ -104,14 +116,13 @@
  * @param[in] the_thread The yielding thread.
  */
-RTEMS_INLINE_ROUTINE void _Scheduler_Yield(
-  const Scheduler_Control *scheduler,
-  Thread_Control          *the_thread
-)
-{
+RTEMS_INLINE_ROUTINE void _Scheduler_Yield( Thread_Control *the_thread )
+{
+  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+
   ( *scheduler->Operations.yield )( scheduler, the_thread );
 }
 
 /**
- * @brief Scheduler block.
+ * @brief Blocks a thread with respect to the scheduler.
  *
  * This routine removes @a the_thread from the scheduling decision for
@@ -119,15 +130,16 @@
  * ready queue.  It performs any necessary schedulering operations
  * including the selection of a new heir thread.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Block(
-  const Scheduler_Control *scheduler,
-  Thread_Control               *the_thread
-)
-{
+ *
+ * @param[in] the_thread The thread.
+ */
+RTEMS_INLINE_ROUTINE void _Scheduler_Block( Thread_Control *the_thread )
+{
+  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+
   ( *scheduler->Operations.block )( scheduler, the_thread );
 }
 
 /**
- * @brief Scheduler unblock.
+ * @brief Unblocks a thread with respect to the scheduler.
  *
  * This routine adds @a the_thread to the scheduling decision for
@@ -135,10 +147,11 @@
  * ready queue per the schedulering policy and update any appropriate
  * scheduling variables, for example the heir thread.
- */
-RTEMS_INLINE_ROUTINE void _Scheduler_Unblock(
-  const Scheduler_Control *scheduler,
-  Thread_Control          *the_thread
-)
-{
+ *
+ * @param[in] the_thread The thread.
+ */
+RTEMS_INLINE_ROUTINE void _Scheduler_Unblock( Thread_Control *the_thread )
+{
+  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+
   ( *scheduler->Operations.unblock )( scheduler, the_thread );
 }
@@ -151,5 +164,4 @@
  * current priority value.
  *
- * @param[in] scheduler The scheduler instance.
  * @param[in] the_thread The thread changing its priority.
  * @param[in] new_priority The new thread priority.
@@ -159,5 +171,4 @@
  */
 RTEMS_INLINE_ROUTINE void _Scheduler_Change_priority(
-  const Scheduler_Control *scheduler,
   Thread_Control          *the_thread,
   Priority_Control         new_priority,
@@ -165,4 +176,6 @@
 )
 {
+  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+
   ( *scheduler->Operations.change_priority )(
     scheduler,
@@ -216,9 +229,10 @@
  */
 RTEMS_INLINE_ROUTINE void _Scheduler_Update_priority(
-  const Scheduler_Control *scheduler,
-  Thread_Control          *the_thread,
-  Priority_Control         new_priority
-)
-{
+  Thread_Control   *the_thread,
+  Priority_Control  new_priority
+)
+{
+  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+
   ( *scheduler->Operations.update_priority )(
     scheduler,
@@ -254,14 +268,16 @@
 
 /**
- * @brief Scheduler release job.
- *
- * This routine is called when a new period of task is issued.
+ * @brief Releases a job of a thread with respect to the scheduler.
+ *
+ * @param[in] the_thread The thread.
+ * @param[in] length The period length.
  */
 RTEMS_INLINE_ROUTINE void _Scheduler_Release_job(
-  const Scheduler_Control *scheduler,
-  Thread_Control          *the_thread,
-  uint32_t                 length
-)
-{
+  Thread_Control *the_thread,
+  uint32_t        length
+)
+{
+  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+
   ( *scheduler->Operations.release_job )( scheduler, the_thread, length );
 }
@@ -346,17 +362,4 @@
 
   return true;
-#endif
-}
-
-RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get(
-  const Thread_Control *the_thread
-)
-{
-#if defined(RTEMS_SMP)
-  return the_thread->scheduler;
-#else
-  (void) the_thread;
-
-  return &_Scheduler_Table[ 0 ];
 #endif
 }
@@ -375,9 +378,5 @@
     the_thread->scheduler = scheduler;
     _Scheduler_Node_initialize( scheduler, the_thread );
-    _Scheduler_Update_priority(
-      scheduler,
-      the_thread,
-      the_thread->current_priority
-    );
+    _Scheduler_Update_priority( the_thread, the_thread->current_priority );
     _Thread_Clear_state( the_thread, STATES_MIGRATING );
   }
Index: cpukit/score/src/schedulerdefaultstartidle.c
===================================================================
--- cpukit/score/src/schedulerdefaultstartidle.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/src/schedulerdefaultstartidle.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -19,5 +19,6 @@
 )
 {
+  (void) scheduler;
   (void) cpu;
-  _Scheduler_Unblock( scheduler, the_thread );
+  _Scheduler_Unblock( the_thread );
 }
Index: cpukit/score/src/threadchangepriority.c
===================================================================
--- cpukit/score/src/threadchangepriority.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/src/threadchangepriority.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -82,15 +82,12 @@
    */
   if ( the_thread->current_priority != new_priority ) {
-    ISR_Level                level;
-    const Scheduler_Control *scheduler;
+    ISR_Level level;
 
     _ISR_Disable( level );
 
-    scheduler = _Scheduler_Get( the_thread );
     the_thread->current_priority = new_priority;
 
     if ( _States_Is_ready( the_thread->current_state ) ) {
       _Scheduler_Change_priority(
-        scheduler,
         the_thread,
         new_priority,
@@ -104,8 +101,7 @@
        *  who is the heir and if we need to switch to them.
        */
-      scheduler = _Scheduler_Get( the_thread );
-      _Scheduler_Schedule( scheduler, the_thread );
+      _Scheduler_Schedule( the_thread );
     } else {
-      _Scheduler_Update_priority( scheduler, the_thread, new_priority );
+      _Scheduler_Update_priority( the_thread, new_priority );
     }
     _ISR_Enable( level );
Index: cpukit/score/src/threadclearstate.c
===================================================================
--- cpukit/score/src/threadclearstate.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/src/threadclearstate.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -38,5 +38,5 @@
 
       if ( _States_Is_ready( current_state ) ) {
-        _Scheduler_Unblock( _Scheduler_Get( the_thread ), the_thread );
+        _Scheduler_Unblock( the_thread );
       }
   }
Index: cpukit/score/src/threadready.c
===================================================================
--- cpukit/score/src/threadready.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/src/threadready.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -33,5 +33,5 @@
   the_thread->current_state = STATES_READY;
 
-  _Scheduler_Unblock( _Scheduler_Get( the_thread ), the_thread );
+  _Scheduler_Unblock( the_thread );
 
   _ISR_Enable( level );
Index: cpukit/score/src/threadsetpriority.c
===================================================================
--- cpukit/score/src/threadsetpriority.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/src/threadsetpriority.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -29,8 +29,4 @@
   the_thread->current_priority = new_priority;
 
-  _Scheduler_Update_priority(
-    _Scheduler_Get( the_thread),
-    the_thread,
-    new_priority
-  );
+  _Scheduler_Update_priority( the_thread, new_priority );
 }
Index: cpukit/score/src/threadsetstate.c
===================================================================
--- cpukit/score/src/threadsetstate.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/src/threadsetstate.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -40,5 +40,5 @@
     the_thread->current_state = state;
 
-    _Scheduler_Block( _Scheduler_Get( the_thread ), the_thread );
+    _Scheduler_Block( the_thread );
   } else {
     the_thread->current_state = _States_Set( state, current_state);
Index: cpukit/score/src/threadyield.c
===================================================================
--- cpukit/score/src/threadyield.c	(revision bd1431ab29e3c1fa32273591e3a139ad9c3da8a0)
+++ cpukit/score/src/threadyield.c	(revision 92635cb36d7af890c4fc76ac8323b79936001ddd)
@@ -35,5 +35,5 @@
 
   if ( _States_Is_ready( executing->current_state ) ) {
-    _Scheduler_Yield( _Scheduler_Get( executing ), executing );
+    _Scheduler_Yield( executing );
   }
 
