diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-10-25 10:54:12 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-10-29 10:52:45 +0100 |
commit | 54f35888311f36baaefd90b1f31e4150e3db5465 (patch) | |
tree | 967692c3c0ae9e1570895b052a9f73441dc97256 /cpukit/posix/src/pthreadsetschedparam.c | |
parent | posix: Hide POSIX_API_Control by default (diff) | |
download | rtems-54f35888311f36baaefd90b1f31e4150e3db5465.tar.bz2 |
posix: Provide threads by default
Update #2514.
Diffstat (limited to 'cpukit/posix/src/pthreadsetschedparam.c')
-rw-r--r-- | cpukit/posix/src/pthreadsetschedparam.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/cpukit/posix/src/pthreadsetschedparam.c b/cpukit/posix/src/pthreadsetschedparam.c index 7c5b6f109d..8d87620d93 100644 --- a/cpukit/posix/src/pthreadsetschedparam.c +++ b/cpukit/posix/src/pthreadsetschedparam.c @@ -40,12 +40,14 @@ static int _POSIX_Set_sched_param( ) { const Scheduler_Control *scheduler; - POSIX_API_Control *api; int normal_prio; - int low_prio; bool valid; Priority_Control core_normal_prio; +#if defined(RTEMS_POSIX_API) + POSIX_API_Control *api; + int low_prio; Priority_Control core_low_prio; +#endif normal_prio = param->sched_priority; @@ -56,6 +58,7 @@ static int _POSIX_Set_sched_param( return EINVAL; } +#if defined(RTEMS_POSIX_API) if ( policy == SCHED_SPORADIC ) { low_prio = param->sched_ss_low_priority; } else { @@ -70,9 +73,11 @@ static int _POSIX_Set_sched_param( api = the_thread->API_Extensions[ THREAD_API_POSIX ]; _Watchdog_Per_CPU_remove_ticks( &api->Sporadic.Timer ); +#endif _Priority_Node_set_priority( &the_thread->Real_priority, core_normal_prio ); +#if defined(RTEMS_POSIX_API) if ( _Priority_Node_is_active( &api->Sporadic.Low_priority ) ) { _Thread_Priority_add( the_thread, @@ -86,17 +91,21 @@ static int _POSIX_Set_sched_param( ); _Priority_Node_set_inactive( &api->Sporadic.Low_priority ); } else { +#endif _Thread_Priority_changed( the_thread, &the_thread->Real_priority, false, queue_context ); +#if defined(RTEMS_POSIX_API) } +#endif the_thread->budget_algorithm = budget_algorithm; the_thread->budget_callout = budget_callout; +#if defined(RTEMS_POSIX_API) _Priority_Node_set_priority( &api->Sporadic.Low_priority, core_low_prio ); api->Sporadic.sched_ss_repl_period = param->sched_ss_repl_period; api->Sporadic.sched_ss_init_budget = param->sched_ss_init_budget; @@ -105,9 +114,12 @@ static int _POSIX_Set_sched_param( if ( policy == SCHED_SPORADIC ) { _POSIX_Threads_Sporadic_timer_insert( the_thread, api ); } else { +#endif the_thread->cpu_time_budget = rtems_configuration_get_ticks_per_timeslice(); +#if defined(RTEMS_POSIX_API) } +#endif return 0; } |