summaryrefslogtreecommitdiffstats
path: root/cpukit/score/include/rtems/score/threadimpl.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2016-09-07 09:04:45 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2016-09-21 08:59:32 +0200
commit5d6b21198140f406a71599a2d388b6ec47ee3337 (patch)
tree0b23d99cc9055cea777bf167d518eda1c305bc27 /cpukit/score/include/rtems/score/threadimpl.h
parentscore: Rework thread priority management (diff)
downloadrtems-5d6b21198140f406a71599a2d388b6ec47ee3337.tar.bz2
score: Add scheduler node table for each thread
Update #2556.
Diffstat (limited to 'cpukit/score/include/rtems/score/threadimpl.h')
-rw-r--r--cpukit/score/include/rtems/score/threadimpl.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h
index 7f9dccf5e2..09af9c15dd 100644
--- a/cpukit/score/include/rtems/score/threadimpl.h
+++ b/cpukit/score/include/rtems/score/threadimpl.h
@@ -993,7 +993,23 @@ RTEMS_INLINE_ROUTINE Scheduler_Node *_Thread_Scheduler_get_own_node(
#if defined(RTEMS_SMP)
return the_thread->Scheduler.own_node;
#else
- return the_thread->Scheduler.node;
+ return the_thread->Scheduler.nodes;
+#endif
+}
+
+RTEMS_INLINE_ROUTINE Scheduler_Node *_Thread_Scheduler_get_node_by_index(
+ const Thread_Control *the_thread,
+ size_t scheduler_index
+)
+{
+#if defined(RTEMS_SMP)
+ return (Scheduler_Node *)
+ ( (uintptr_t) the_thread->Scheduler.nodes
+ + scheduler_index * _Scheduler_Node_size );
+#else
+ _Assert( scheduler_index == 0 );
+ (void) scheduler_index;
+ return the_thread->Scheduler.nodes;
#endif
}