[PATCH 29/30] score: Introduce Thread_Scheduler_control::home

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Oct 31 08:52:00 UTC 2016


Replace Thread_Scheduler_control::control and
Thread_Scheduler_control::own_control with new
Thread_Scheduler_control::home.

Update #2556.
---
 cpukit/libmisc/capture/capture.h                 |  2 +-
 cpukit/libmisc/cpuuse/cpuusagereset.c            |  2 +-
 cpukit/posix/src/mutexinit.c                     |  2 +-
 cpukit/posix/src/pthread.c                       |  2 +-
 cpukit/posix/src/pthreadcreate.c                 |  2 +-
 cpukit/posix/src/pthreadgetschedparam.c          |  2 +-
 cpukit/posix/src/pthreadsetschedparam.c          |  2 +-
 cpukit/posix/src/pthreadsetschedprio.c           |  2 +-
 cpukit/posix/src/sched_getprioritymax.c          |  2 +-
 cpukit/rtems/src/semcreate.c                     |  4 +--
 cpukit/rtems/src/taskgetscheduler.c              |  2 +-
 cpukit/rtems/src/tasksetpriority.c               |  2 +-
 cpukit/score/include/rtems/score/coremuteximpl.h |  2 +-
 cpukit/score/include/rtems/score/mrspimpl.h      |  2 +-
 cpukit/score/include/rtems/score/schedulerimpl.h | 45 +++++-------------------
 cpukit/score/include/rtems/score/thread.h        | 13 ++-----
 cpukit/score/include/rtems/score/threadimpl.h    | 12 +++++++
 cpukit/score/src/sched.c                         |  2 +-
 cpukit/score/src/schedulergetaffinity.c          |  2 +-
 cpukit/score/src/schedulersetaffinity.c          |  2 +-
 cpukit/score/src/threadgetcputimeused.c          |  2 +-
 cpukit/score/src/threadinitialize.c              |  3 +-
 cpukit/score/src/threadrestart.c                 |  2 +-
 testsuites/smptests/smpscheduler03/init.c        |  8 ++---
 testsuites/tmtests/tm26/task1.c                  |  8 ++---
 testsuites/tmtests/tm27/task1.c                  |  4 +--
 26 files changed, 54 insertions(+), 79 deletions(-)

diff --git a/cpukit/libmisc/capture/capture.h b/cpukit/libmisc/capture/capture.h
index 5e3237d..f847ee0 100644
--- a/cpukit/libmisc/capture/capture.h
+++ b/cpukit/libmisc/capture/capture.h
@@ -872,7 +872,7 @@ rtems_capture_task_control_flags (rtems_tcb* tcb)
 static inline rtems_task_priority
 rtems_capture_task_start_priority (rtems_tcb* tcb)
 {
-  return _RTEMS_Priority_From_core (_Scheduler_Get_own( tcb ),
+  return _RTEMS_Priority_From_core (_Thread_Scheduler_get_home( tcb ),
                                     tcb->Start.initial_priority);
 }
 
diff --git a/cpukit/libmisc/cpuuse/cpuusagereset.c b/cpukit/libmisc/cpuuse/cpuusagereset.c
index abfd4db..f6cf7dd 100644
--- a/cpukit/libmisc/cpuuse/cpuusagereset.c
+++ b/cpukit/libmisc/cpuuse/cpuusagereset.c
@@ -35,7 +35,7 @@ static void CPU_usage_Per_thread_handler(
   ISR_lock_Context         scheduler_lock_context;
 
   _Thread_State_acquire( the_thread, &state_lock_context );
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
   _Timestamp_Set_to_zero( &the_thread->cpu_time_used );
diff --git a/cpukit/posix/src/mutexinit.c b/cpukit/posix/src/mutexinit.c
index 0dacc3f..39139a4 100644
--- a/cpukit/posix/src/mutexinit.c
+++ b/cpukit/posix/src/mutexinit.c
@@ -110,7 +110,7 @@ int pthread_mutex_init(
     int  prio_ceiling;
     bool valid;
 
-    scheduler = _Scheduler_Get_own( _Thread_Get_executing() );
+    scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() );
     prio_ceiling = the_attr->prio_ceiling;
 
     if ( prio_ceiling == INT_MAX ) {
diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c
index 9cd730b..6a39e3e 100644
--- a/cpukit/posix/src/pthread.c
+++ b/cpukit/posix/src/pthread.c
@@ -168,7 +168,7 @@ static bool _POSIX_Threads_Create_extension(
   api->thread = created;
   _POSIX_Threads_Initialize_attributes( &api->Attributes );
   api->Attributes.schedparam.sched_priority = _POSIX_Priority_From_core(
-    _Scheduler_Get_own( created ),
+    _Thread_Scheduler_get_home( created ),
     _Thread_Get_priority( created )
   );
 
diff --git a/cpukit/posix/src/pthreadcreate.c b/cpukit/posix/src/pthreadcreate.c
index f1983ac..a04ac00 100644
--- a/cpukit/posix/src/pthreadcreate.c
+++ b/cpukit/posix/src/pthreadcreate.c
@@ -151,7 +151,7 @@ int pthread_create(
 
   normal_prio = schedparam.sched_priority;
 
-  scheduler = _Scheduler_Get_own( executing );
+  scheduler = _Thread_Scheduler_get_home( executing );
 
   core_normal_prio = _POSIX_Priority_To_core( scheduler, normal_prio, &valid );
   if ( !valid ) {
diff --git a/cpukit/posix/src/pthreadgetschedparam.c b/cpukit/posix/src/pthreadgetschedparam.c
index 1d4812c..88cd5fd 100644
--- a/cpukit/posix/src/pthreadgetschedparam.c
+++ b/cpukit/posix/src/pthreadgetschedparam.c
@@ -58,7 +58,7 @@ int pthread_getschedparam(
   *policy = api->Attributes.schedpolicy;
   *param  = api->Attributes.schedparam;
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   priority = the_thread->Real_priority.priority;
 
   _Thread_Wait_release( the_thread, &queue_context );
diff --git a/cpukit/posix/src/pthreadsetschedparam.c b/cpukit/posix/src/pthreadsetschedparam.c
index 9aa2122..14ea1cd 100644
--- a/cpukit/posix/src/pthreadsetschedparam.c
+++ b/cpukit/posix/src/pthreadsetschedparam.c
@@ -55,7 +55,7 @@ static int _POSIX_Set_sched_param(
     high_prio = low_prio;
   }
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
 
   core_normal_prio = _POSIX_Priority_To_core( scheduler, low_prio, &valid );
   if ( !valid ) {
diff --git a/cpukit/posix/src/pthreadsetschedprio.c b/cpukit/posix/src/pthreadsetschedprio.c
index e3d9de0..16b6f3f 100644
--- a/cpukit/posix/src/pthreadsetschedprio.c
+++ b/cpukit/posix/src/pthreadsetschedprio.c
@@ -36,7 +36,7 @@ int pthread_setschedprio( pthread_t thread, int prio )
   _Thread_queue_Context_clear_priority_updates( &queue_context );
   _Thread_Wait_acquire_critical( the_thread, &queue_context );
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
 
   new_priority = _POSIX_Priority_To_core( scheduler, prio, &valid );
   if ( !valid ) {
diff --git a/cpukit/posix/src/sched_getprioritymax.c b/cpukit/posix/src/sched_getprioritymax.c
index 5903f25..d882153 100644
--- a/cpukit/posix/src/sched_getprioritymax.c
+++ b/cpukit/posix/src/sched_getprioritymax.c
@@ -43,6 +43,6 @@ int sched_get_priority_max(
       rtems_set_errno_and_return_minus_one( EINVAL );
   }
 
-  scheduler = _Scheduler_Get_own( _Thread_Get_executing() );
+  scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() );
   return _POSIX_Priority_Get_maximum( scheduler );
 }
diff --git a/cpukit/rtems/src/semcreate.c b/cpukit/rtems/src/semcreate.c
index 77ecdd7..c38e69f 100644
--- a/cpukit/rtems/src/semcreate.c
+++ b/cpukit/rtems/src/semcreate.c
@@ -157,7 +157,7 @@ rtems_status_code rtems_semaphore_create(
       status = STATUS_SUCCESSFUL;
       break;
     case SEMAPHORE_VARIANT_MUTEX_PRIORITY_CEILING:
-      scheduler = _Scheduler_Get_own( executing );
+      scheduler = _Thread_Scheduler_get_home( executing );
       priority = _RTEMS_Priority_To_core( scheduler, priority_ceiling, &valid );
 
       if ( valid ) {
@@ -195,7 +195,7 @@ rtems_status_code rtems_semaphore_create(
       break;
 #if defined(RTEMS_SMP)
     case SEMAPHORE_VARIANT_MRSP:
-      scheduler = _Scheduler_Get_own( executing );
+      scheduler = _Thread_Scheduler_get_home( executing );
       priority = _RTEMS_Priority_To_core( scheduler, priority_ceiling, &valid );
 
       if ( valid ) {
diff --git a/cpukit/rtems/src/taskgetscheduler.c b/cpukit/rtems/src/taskgetscheduler.c
index 869e0f5..e874c30 100644
--- a/cpukit/rtems/src/taskgetscheduler.c
+++ b/cpukit/rtems/src/taskgetscheduler.c
@@ -46,7 +46,7 @@ rtems_status_code rtems_task_get_scheduler(
 
   _Thread_State_acquire_critical( the_thread, &lock_context );
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   *scheduler_id = _Scheduler_Build_id( _Scheduler_Get_index( scheduler ) );
 
   _Thread_State_release( the_thread, &lock_context );
diff --git a/cpukit/rtems/src/tasksetpriority.c b/cpukit/rtems/src/tasksetpriority.c
index 6b8ab4e..8f0ce31 100644
--- a/cpukit/rtems/src/tasksetpriority.c
+++ b/cpukit/rtems/src/tasksetpriority.c
@@ -90,7 +90,7 @@ rtems_status_code rtems_task_set_priority(
 
   _Thread_Wait_acquire_critical( the_thread, &queue_context );
 
-  scheduler = _Scheduler_Get_own( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   old_priority = _Thread_Get_priority( the_thread );
 
   if ( new_priority != RTEMS_CURRENT_PRIORITY ) {
diff --git a/cpukit/score/include/rtems/score/coremuteximpl.h b/cpukit/score/include/rtems/score/coremuteximpl.h
index 5078c26..bbe2f07 100644
--- a/cpukit/score/include/rtems/score/coremuteximpl.h
+++ b/cpukit/score/include/rtems/score/coremuteximpl.h
@@ -332,7 +332,7 @@ RTEMS_INLINE_ROUTINE Status_Control _CORE_ceiling_mutex_Seize(
   if ( owner == NULL ) {
 #if defined(RTEMS_SMP)
     if (
-      _Scheduler_Get_own( executing )
+      _Thread_Scheduler_get_home( executing )
         != _CORE_ceiling_mutex_Get_scheduler( the_mutex )
     ) {
       _CORE_mutex_Release( &the_mutex->Recursive.Mutex, queue_context );
diff --git a/cpukit/score/include/rtems/score/mrspimpl.h b/cpukit/score/include/rtems/score/mrspimpl.h
index 9555197..96d88ad 100644
--- a/cpukit/score/include/rtems/score/mrspimpl.h
+++ b/cpukit/score/include/rtems/score/mrspimpl.h
@@ -105,7 +105,7 @@ RTEMS_INLINE_ROUTINE Status_Control _MRSP_Raise_priority(
   _Thread_queue_Context_clear_priority_updates( queue_context );
   _Thread_Wait_acquire_default_critical( thread, &lock_context );
 
-  scheduler = _Scheduler_Get_own( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   scheduler_node = _Thread_Scheduler_get_home_node( thread );
   ceiling_priority = _MRSP_Get_priority( mrsp, scheduler );
 
diff --git a/cpukit/score/include/rtems/score/schedulerimpl.h b/cpukit/score/include/rtems/score/schedulerimpl.h
index 298437c..6ae93b9 100644
--- a/cpukit/score/include/rtems/score/schedulerimpl.h
+++ b/cpukit/score/include/rtems/score/schedulerimpl.h
@@ -53,32 +53,6 @@ RTEMS_INLINE_ROUTINE Scheduler_Context *_Scheduler_Get_context(
   return scheduler->context;
 }
 
-RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get(
-  const Thread_Control *the_thread
-)
-{
-#if defined(RTEMS_SMP)
-  return the_thread->Scheduler.control;
-#else
-  (void) the_thread;
-
-  return &_Scheduler_Table[ 0 ];
-#endif
-}
-
-RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get_own(
-  const Thread_Control *the_thread
-)
-{
-#if defined(RTEMS_SMP)
-  return the_thread->Scheduler.own_control;
-#else
-  (void) the_thread;
-
-  return &_Scheduler_Table[ 0 ];
-#endif
-}
-
 RTEMS_INLINE_ROUTINE const Scheduler_Control *_Scheduler_Get_by_CPU_index(
   uint32_t cpu_index
 )
@@ -177,7 +151,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Schedule( Thread_Control *the_thread )
   const Scheduler_Control *scheduler;
   ISR_lock_Context         lock_context;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &lock_context );
 
   ( *scheduler->Operations.schedule )( scheduler, the_thread );
@@ -246,7 +220,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Yield( Thread_Control *the_thread )
 #else
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.yield )(
     scheduler,
     the_thread,
@@ -308,7 +282,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Block( Thread_Control *the_thread )
 #else
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.block )(
     scheduler,
     the_thread,
@@ -380,7 +354,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Unblock( Thread_Control *the_thread )
 #else
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.unblock )(
     scheduler,
     the_thread,
@@ -435,7 +409,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Update_priority( Thread_Control *the_thread
 #else
   const Scheduler_Control *scheduler;
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   ( *scheduler->Operations.update_priority )(
     scheduler,
     the_thread,
@@ -601,7 +575,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Release_job(
   Thread_queue_Context *queue_context
 )
 {
-  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+  const Scheduler_Control *scheduler = _Thread_Scheduler_get_home( the_thread );
 
   _Thread_queue_Context_clear_priority_updates( queue_context );
   ( *scheduler->Operations.release_job )(
@@ -627,7 +601,7 @@ RTEMS_INLINE_ROUTINE void _Scheduler_Cancel_job(
   Thread_queue_Context *queue_context
 )
 {
-  const Scheduler_Control *scheduler = _Scheduler_Get( the_thread );
+  const Scheduler_Control *scheduler = _Thread_Scheduler_get_home( the_thread );
 
   _Thread_queue_Context_clear_priority_updates( queue_context );
   ( *scheduler->Operations.cancel_job )(
@@ -1280,7 +1254,7 @@ RTEMS_INLINE_ROUTINE Status_Control _Scheduler_Set(
   {
     const Scheduler_Control *old_scheduler;
 
-    old_scheduler = _Scheduler_Get( the_thread );
+    old_scheduler = _Thread_Scheduler_get_home( the_thread );
 
     if ( old_scheduler != new_scheduler ) {
       States_Control current_state;
@@ -1309,8 +1283,7 @@ RTEMS_INLINE_ROUTINE Status_Control _Scheduler_Set(
         &new_scheduler_node->Thread.Scheduler_node.Chain
       );
 
-      the_thread->Scheduler.own_control = new_scheduler;
-      the_thread->Scheduler.control = new_scheduler;
+      the_thread->Scheduler.home = new_scheduler;
       _Scheduler_Node_set_priority( new_scheduler_node, priority, false );
 
       if ( _States_Is_ready( current_state ) ) {
diff --git a/cpukit/score/include/rtems/score/thread.h b/cpukit/score/include/rtems/score/thread.h
index ec00c05..e98059e 100644
--- a/cpukit/score/include/rtems/score/thread.h
+++ b/cpukit/score/include/rtems/score/thread.h
@@ -255,18 +255,9 @@ typedef struct {
   Thread_Scheduler_state state;
 
   /**
-   * @brief The own scheduler control of this thread.
-   *
-   * This field is constant after initialization.
-   */
-  const struct Scheduler_Control *own_control;
-
-  /**
-   * @brief The scheduler control of this thread.
-   *
-   * The scheduler helping protocol may change this field.
+   * @brief The home scheduler control of this thread.
    */
-  const struct Scheduler_Control *control;
+  const struct Scheduler_Control *home;
 
   /**
    * @brief The processor assigned by the current scheduler.
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h
index a64602e..f96c4b0 100644
--- a/cpukit/score/include/rtems/score/threadimpl.h
+++ b/cpukit/score/include/rtems/score/threadimpl.h
@@ -1002,6 +1002,18 @@ RTEMS_INLINE_ROUTINE void _Thread_Scheduler_cancel_need_for_help(
 }
 #endif
 
+RTEMS_INLINE_ROUTINE const Scheduler_Control *_Thread_Scheduler_get_home(
+  const Thread_Control *the_thread
+)
+{
+#if defined(RTEMS_SMP)
+  return the_thread->Scheduler.home;
+#else
+  (void) the_thread;
+  return &_Scheduler_Table[ 0 ];
+#endif
+}
+
 RTEMS_INLINE_ROUTINE Scheduler_Node *_Thread_Scheduler_get_home_node(
   const Thread_Control *the_thread
 )
diff --git a/cpukit/score/src/sched.c b/cpukit/score/src/sched.c
index e694564..36d3f0c 100644
--- a/cpukit/score/src/sched.c
+++ b/cpukit/score/src/sched.c
@@ -31,7 +31,7 @@ int _Sched_Index( void )
 {
   Thread_Control *executing = _Thread_Get_executing();
 
-  return (int) _Scheduler_Get_index( _Scheduler_Get( executing ) );
+  return (int) _Scheduler_Get_index( _Thread_Scheduler_get_home( executing ) );
 }
 
 int _Sched_Name_to_index( const char *name, size_t len )
diff --git a/cpukit/score/src/schedulergetaffinity.c b/cpukit/score/src/schedulergetaffinity.c
index c910a75..8489957 100644
--- a/cpukit/score/src/schedulergetaffinity.c
+++ b/cpukit/score/src/schedulergetaffinity.c
@@ -34,7 +34,7 @@ bool _Scheduler_Get_affinity(
     return false;
   }
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &lock_context );
 
 #if defined(RTEMS_SMP)
diff --git a/cpukit/score/src/schedulersetaffinity.c b/cpukit/score/src/schedulersetaffinity.c
index b59d8eb..6635ffa 100644
--- a/cpukit/score/src/schedulersetaffinity.c
+++ b/cpukit/score/src/schedulersetaffinity.c
@@ -34,7 +34,7 @@ bool _Scheduler_Set_affinity(
     return false;
   }
 
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &lock_context );
 
 #if defined(RTEMS_SMP)
diff --git a/cpukit/score/src/threadgetcputimeused.c b/cpukit/score/src/threadgetcputimeused.c
index 9026007..7b5b73b 100644
--- a/cpukit/score/src/threadgetcputimeused.c
+++ b/cpukit/score/src/threadgetcputimeused.c
@@ -38,7 +38,7 @@ void _Thread_Get_CPU_time_used(
   ISR_lock_Context         scheduler_lock_context;
 
   _Thread_State_acquire( the_thread, &state_lock_context );
-  scheduler = _Scheduler_Get( the_thread );
+  scheduler = _Thread_Scheduler_get_home( the_thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
   if ( _Thread_Is_scheduled( the_thread ) ) {
diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/threadinitialize.c
index d34cb34..16c225e 100644
--- a/cpukit/score/src/threadinitialize.c
+++ b/cpukit/score/src/threadinitialize.c
@@ -232,8 +232,7 @@ bool _Thread_Initialize(
 
 #if defined(RTEMS_SMP)
   RTEMS_STATIC_ASSERT( THREAD_SCHEDULER_BLOCKED == 0, Scheduler_state );
-  the_thread->Scheduler.own_control = scheduler;
-  the_thread->Scheduler.control = scheduler;
+  the_thread->Scheduler.home = scheduler;
   _ISR_lock_Initialize( &the_thread->Scheduler.Lock, "Thread Scheduler" );
   _ISR_lock_Initialize( &the_thread->Wait.Lock.Default, "Thread Wait Default" );
   _Thread_queue_Gate_open( &the_thread->Wait.Lock.Tranquilizer );
diff --git a/cpukit/score/src/threadrestart.c b/cpukit/score/src/threadrestart.c
index 08e3c80..4d9e2c9 100644
--- a/cpukit/score/src/threadrestart.c
+++ b/cpukit/score/src/threadrestart.c
@@ -169,7 +169,7 @@ static void _Thread_Free( Thread_Control *the_thread )
   _User_extensions_Destroy_iterators( the_thread );
   _ISR_lock_Destroy( &the_thread->Keys.Lock );
   _Scheduler_Node_destroy(
-    _Scheduler_Get( the_thread ),
+    _Thread_Scheduler_get_home( the_thread ),
     _Thread_Scheduler_get_home_node( the_thread )
   );
   _ISR_lock_Destroy( &the_thread->Timer.Lock );
diff --git a/testsuites/smptests/smpscheduler03/init.c b/testsuites/smptests/smpscheduler03/init.c
index d9e4862..55c7942 100644
--- a/testsuites/smptests/smpscheduler03/init.c
+++ b/testsuites/smptests/smpscheduler03/init.c
@@ -214,7 +214,7 @@ static void update_priority_op(
   apply_priority(thread, new_priority, prepend_it, &queue_context);
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
   (*scheduler->Operations.update_priority)(
@@ -325,7 +325,7 @@ static Thread_Control *yield_op(
   Thread_Control *needs_help;
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
   needs_help = (*scheduler->Operations.yield)(
@@ -464,7 +464,7 @@ static void block_op(
   ISR_lock_Context scheduler_lock_context;
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
   (*scheduler->Operations.block)(scheduler, thread, &scheduler_node->Base);
@@ -484,7 +484,7 @@ static Thread_Control *unblock_op(
   Thread_Control *needs_help;
 
   _Thread_State_acquire( thread, &state_lock_context );
-  scheduler = _Scheduler_Get( thread );
+  scheduler = _Thread_Scheduler_get_home( thread );
   _Scheduler_Acquire_critical( scheduler, &scheduler_lock_context );
 
   needs_help = (*scheduler->Operations.unblock)(
diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c
index 0e52d3d..173cf7f 100644
--- a/testsuites/tmtests/tm26/task1.c
+++ b/testsuites/tmtests/tm26/task1.c
@@ -316,7 +316,7 @@ rtems_task Middle_task(
 )
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
 
   thread_dispatch_no_fp_time = benchmark_timer_read();
 
@@ -349,7 +349,7 @@ rtems_task Low_task(
 )
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
   Thread_Control             *executing;
 
   context_switch_no_fp_time = benchmark_timer_read();
@@ -389,7 +389,7 @@ rtems_task Floating_point_task_1(
 )
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
   Thread_Control             *executing;
   FP_DECLARE;
 
@@ -445,7 +445,7 @@ rtems_task Floating_point_task_2(
 )
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
   Thread_Control             *executing;
   FP_DECLARE;
 
diff --git a/testsuites/tmtests/tm27/task1.c b/testsuites/tmtests/tm27/task1.c
index aba835c..9126391 100644
--- a/testsuites/tmtests/tm27/task1.c
+++ b/testsuites/tmtests/tm27/task1.c
@@ -107,7 +107,7 @@ rtems_task Task_1(
 )
 {
   Scheduler_priority_Context *scheduler_context =
-    _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) );
+    _Scheduler_priority_Get_context( _Thread_Scheduler_get_home( _Thread_Get_executing() ) );
 #if defined(RTEMS_SMP)
   rtems_interrupt_level level;
 #endif
@@ -231,7 +231,7 @@ rtems_task Task_2(
   ISR_lock_Context scheduler_lock_context;
 
   _Thread_State_acquire( executing, &state_lock_context );
-  scheduler = _Scheduler_Get( executing );
+  scheduler = _Thread_Scheduler_get_home( executing );
   scheduler_context = _Scheduler_priority_Get_context( scheduler );
   _Thread_State_release( executing, &state_lock_context );
 
-- 
1.8.4.5




More information about the devel mailing list