diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-06-10 16:13:37 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-06-23 09:53:59 +0200 |
commit | 8f0c7a46ed1edc5b2489bfd248942d6918836e3f (patch) | |
tree | 3ceb6d5a1c3133fc4412da974b13f2f92ff8e90d /cpukit/score/include/rtems/score/schedulerimpl.h | |
parent | score: Use chain nodes for ready queue support (diff) | |
download | rtems-8f0c7a46ed1edc5b2489bfd248942d6918836e3f.tar.bz2 |
score: Decouple thread and scheduler nodes on SMP
Add a chain node to the scheduler node to decouple the thread and
scheduler nodes. It is now possible to enqueue a thread in a thread
wait queue and use its scheduler node at the same for other threads,
e.g. a resouce owner.
Diffstat (limited to 'cpukit/score/include/rtems/score/schedulerimpl.h')
-rw-r--r-- | cpukit/score/include/rtems/score/schedulerimpl.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cpukit/score/include/rtems/score/schedulerimpl.h b/cpukit/score/include/rtems/score/schedulerimpl.h index 364c658a1c..391a8d7a85 100644 --- a/cpukit/score/include/rtems/score/schedulerimpl.h +++ b/cpukit/score/include/rtems/score/schedulerimpl.h @@ -652,6 +652,28 @@ RTEMS_INLINE_ROUTINE Scheduler_Node *_Scheduler_Node_get( return the_thread->Scheduler.node; } +RTEMS_INLINE_ROUTINE void _Scheduler_Node_do_initialize( + Scheduler_Node *node, + Thread_Control *the_thread +) +{ +#if defined(RTEMS_SMP) + node->owner = the_thread; +#else + (void) node; + (void) the_thread; +#endif +} + +#if defined(RTEMS_SMP) +RTEMS_INLINE_ROUTINE Thread_Control *_Scheduler_Node_get_owner( + const Scheduler_Node *node +) +{ + return node->owner; +} +#endif + /** @} */ #ifdef __cplusplus |