From e1598a616db1e9dadfd74abeb20b1f1ec5daaa7f Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Fri, 4 Apr 2014 10:56:36 +0200 Subject: score: Static scheduler configuration Do not allocate the scheduler control structures from the workspace. This is a preparation step for configuration of clustered/partitioned schedulers on SMP. --- .../include/rtems/score/schedulerprioritysmp.h | 24 ++++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) (limited to 'cpukit/score/include/rtems/score/schedulerprioritysmp.h') diff --git a/cpukit/score/include/rtems/score/schedulerprioritysmp.h b/cpukit/score/include/rtems/score/schedulerprioritysmp.h index 905549d125..df8af184e3 100644 --- a/cpukit/score/include/rtems/score/schedulerprioritysmp.h +++ b/cpukit/score/include/rtems/score/schedulerprioritysmp.h @@ -47,6 +47,12 @@ extern "C" { * @{ */ +typedef struct { + Scheduler_SMP_Context Base; + Priority_bit_map_Control Bit_map; + Chain_Control Ready[ 0 ]; +} Scheduler_priority_SMP_Context; + /** * @brief Entry points for the Priority SMP Scheduler. */ @@ -71,45 +77,45 @@ extern "C" { _Scheduler_default_Set_affinity \ } -void _Scheduler_priority_SMP_Initialize( void ); +void _Scheduler_priority_SMP_Initialize( const Scheduler_Control *scheduler ); void _Scheduler_priority_SMP_Schedule( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread ); void _Scheduler_priority_SMP_Block( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread ); void _Scheduler_priority_SMP_Update( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread ); void _Scheduler_priority_SMP_Enqueue_fifo( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread ); void _Scheduler_priority_SMP_Enqueue_lifo( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread ); void _Scheduler_priority_SMP_Extract( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread ); void _Scheduler_priority_SMP_Yield( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread ); void _Scheduler_priority_SMP_Start_idle( - Scheduler_Control *base, + const Scheduler_Control *scheduler, Thread_Control *thread, Per_CPU_Control *cpu ); -- cgit v1.2.3