diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-04-04 10:56:36 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2014-04-15 08:37:11 +0200 |
commit | e1598a616db1e9dadfd74abeb20b1f1ec5daaa7f (patch) | |
tree | 0aabc512f4beb2b30eba7885926d06a878988855 /testsuites/tmtests | |
parent | score: Add and use RTEMS_ZERO_LENGTH_ARRAY (diff) | |
download | rtems-e1598a616db1e9dadfd74abeb20b1f1ec5daaa7f.tar.bz2 |
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.
Diffstat (limited to 'testsuites/tmtests')
-rw-r--r-- | testsuites/tmtests/tm26/task1.c | 31 | ||||
-rw-r--r-- | testsuites/tmtests/tm27/task1.c | 20 |
2 files changed, 29 insertions, 22 deletions
diff --git a/testsuites/tmtests/tm26/task1.c b/testsuites/tmtests/tm26/task1.c index 6325516561..6b2572ef9e 100644 --- a/testsuites/tmtests/tm26/task1.c +++ b/testsuites/tmtests/tm26/task1.c @@ -223,7 +223,10 @@ rtems_task Init( TEST_BEGIN(); - if (_Scheduler.Operations.initialize != _Scheduler_priority_Initialize) { + if ( + _Scheduler_Table[ 0 ].Operations.initialize + != _Scheduler_priority_Initialize + ) { puts(" Error ==> " ); puts("Test only supported for deterministic priority scheduler\n" ); TEST_END(); @@ -371,8 +374,8 @@ rtems_task Middle_task( rtems_task_argument argument ) { - Scheduler_priority_Control *scheduler = - _Scheduler_priority_Self_from_base( _Scheduler_Get( NULL ) ); + Scheduler_priority_Context *scheduler_context = + _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) ); thread_dispatch_no_fp_time = benchmark_timer_read(); @@ -381,7 +384,7 @@ rtems_task Middle_task( Middle_tcb = _Thread_Get_executing(); set_thread_executing( - (Thread_Control *) _Chain_First(&scheduler->Ready[LOW_PRIORITY]) + (Thread_Control *) _Chain_First(&scheduler_context->Ready[LOW_PRIORITY]) ); /* do not force context switch */ @@ -404,8 +407,8 @@ rtems_task Low_task( rtems_task_argument argument ) { - Scheduler_priority_Control *scheduler = - _Scheduler_priority_Self_from_base( _Scheduler_Get( NULL ) ); + Scheduler_priority_Context *scheduler_context = + _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) ); Thread_Control *executing; context_switch_no_fp_time = benchmark_timer_read(); @@ -424,7 +427,7 @@ rtems_task Low_task( context_switch_another_task_time = benchmark_timer_read(); set_thread_executing( - (Thread_Control *) _Chain_First(&scheduler->Ready[FP1_PRIORITY]) + (Thread_Control *) _Chain_First(&scheduler_context->Ready[FP1_PRIORITY]) ); /* do not force context switch */ @@ -447,8 +450,8 @@ rtems_task Floating_point_task_1( rtems_task_argument argument ) { - Scheduler_priority_Control *scheduler = - _Scheduler_priority_Self_from_base( _Scheduler_Get( NULL ) ); + Scheduler_priority_Context *scheduler_context = + _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) ); Thread_Control *executing; FP_DECLARE; @@ -457,7 +460,7 @@ rtems_task Floating_point_task_1( executing = _Thread_Get_executing(); set_thread_executing( - (Thread_Control *) _Chain_First(&scheduler->Ready[FP2_PRIORITY]) + (Thread_Control *) _Chain_First(&scheduler_context->Ready[FP2_PRIORITY]) ); /* do not force context switch */ @@ -484,7 +487,7 @@ rtems_task Floating_point_task_1( executing = _Thread_Get_executing(); set_thread_executing( - (Thread_Control *) _Chain_First(&scheduler->Ready[FP2_PRIORITY]) + (Thread_Control *) _Chain_First(&scheduler_context->Ready[FP2_PRIORITY]) ); benchmark_timer_initialize(); @@ -503,8 +506,8 @@ rtems_task Floating_point_task_2( rtems_task_argument argument ) { - Scheduler_priority_Control *scheduler = - _Scheduler_priority_Self_from_base( _Scheduler_Get( NULL ) ); + Scheduler_priority_Context *scheduler_context = + _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) ); Thread_Control *executing; FP_DECLARE; @@ -513,7 +516,7 @@ rtems_task Floating_point_task_2( executing = _Thread_Get_executing(); set_thread_executing( - (Thread_Control *) _Chain_First(&scheduler->Ready[FP1_PRIORITY]) + (Thread_Control *) _Chain_First(&scheduler_context->Ready[FP1_PRIORITY]) ); FP_LOAD( 1.0 ); diff --git a/testsuites/tmtests/tm27/task1.c b/testsuites/tmtests/tm27/task1.c index a6393273f2..3d02e911bf 100644 --- a/testsuites/tmtests/tm27/task1.c +++ b/testsuites/tmtests/tm27/task1.c @@ -20,8 +20,8 @@ #define CONFIGURE_INIT #include "system.h" -#include <rtems/score/schedulerpriorityimpl.h> #include <bsp.h> +#include <rtems/score/schedulerpriorityimpl.h> #define _RTEMS_TMTEST27 #include <tm27.h> @@ -55,7 +55,11 @@ rtems_task Init( Print_Warning(); TEST_BEGIN(); - if (_Scheduler.Operations.initialize != _Scheduler_priority_Initialize) { + + if ( + _Scheduler_Table[ 0 ].Operations.initialize + != _Scheduler_priority_Initialize + ) { puts(" Error ==> " ); puts("Test only supported for deterministic priority scheduler\n" ); TEST_END(); @@ -102,8 +106,8 @@ rtems_task Task_1( rtems_task_argument argument ) { - Scheduler_priority_Control *scheduler = - _Scheduler_priority_Self_from_base( _Scheduler_Get( NULL ) ); + Scheduler_priority_Context *scheduler_context = + _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) ); #if defined(RTEMS_SMP) rtems_interrupt_level level; #endif @@ -188,7 +192,7 @@ rtems_task Task_1( #endif _Thread_Executing = - (Thread_Control *) _Chain_First(&scheduler->Ready[LOW_PRIORITY]); + (Thread_Control *) _Chain_First(&scheduler_context->Ready[LOW_PRIORITY]); _Thread_Dispatch_necessary = 1; @@ -220,8 +224,8 @@ rtems_task Task_2( rtems_task_argument argument ) { - Scheduler_priority_Control *scheduler = - _Scheduler_priority_Self_from_base( _Scheduler_Get( NULL ) ); + Scheduler_priority_Context *scheduler_context = + _Scheduler_priority_Get_context( _Scheduler_Get( _Thread_Get_executing() ) ); #if defined(RTEMS_SMP) rtems_interrupt_level level; #endif @@ -258,7 +262,7 @@ rtems_task Task_2( #endif _Thread_Executing = - (Thread_Control *) _Chain_First(&scheduler->Ready[LOW_PRIORITY]); + (Thread_Control *) _Chain_First(&scheduler_context->Ready[LOW_PRIORITY]); _Thread_Dispatch_necessary = 1; |