summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/schedulerimpl.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-06-10 16:13:37 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-06-23 09:53:59 +0200
commit8f0c7a46ed1edc5b2489bfd248942d6918836e3f (patch)
tree3ceb6d5a1c3133fc4412da974b13f2f92ff8e90d /cpukit/score/include/rtems/score/schedulerimpl.h
parentscore: Use chain nodes for ready queue support (diff)
downloadrtems-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.h22
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