summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/psxtransschedparam.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-06 17:59:34 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-07-06 17:59:34 +0000
commit3ba0750fd1998c0ca129f06a0b8deebeae6075f4 (patch)
tree58f1ea553ad6d3707c86e4541ed2ffbe94bc05b3 /cpukit/posix/src/psxtransschedparam.c
parent2009-07-06 Joel Sherrill <joel.sherrill@OARcorp.com> (diff)
downloadrtems-3ba0750fd1998c0ca129f06a0b8deebeae6075f4.tar.bz2
2009-07-06 Joel Sherrill <joel.sherrill@OARcorp.com>
* posix/src/psxtransschedparam.c: Restructure to avoid untestable code being generated by switch.
Diffstat (limited to 'cpukit/posix/src/psxtransschedparam.c')
-rw-r--r--cpukit/posix/src/psxtransschedparam.c46
1 files changed, 23 insertions, 23 deletions
diff --git a/cpukit/posix/src/psxtransschedparam.c b/cpukit/posix/src/psxtransschedparam.c
index 8e91af75d4..0940d67b5b 100644
--- a/cpukit/posix/src/psxtransschedparam.c
+++ b/cpukit/posix/src/psxtransschedparam.c
@@ -33,33 +33,33 @@ int _POSIX_Thread_Translate_sched_param(
*budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
*budget_callout = NULL;
- switch ( policy ) {
- case SCHED_OTHER:
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
- break;
-
- case SCHED_FIFO:
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
- break;
-
- case SCHED_RR:
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
- break;
+ if ( policy == SCHED_OTHER ) {
+ *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE;
+ return 0;
+ }
- case SCHED_SPORADIC:
- *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;
- *budget_callout = _POSIX_Threads_Sporadic_budget_callout;
+ if ( policy == SCHED_FIFO ) {
+ *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_NONE;
+ return 0;
+ }
- if ( _Timespec_To_ticks( &param->ss_replenish_period ) <
- _Timespec_To_ticks( &param->ss_initial_budget ) )
- return EINVAL;
+ if ( policy == SCHED_RR ) {
+ *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE;
+ return 0;
+ }
- if ( !_POSIX_Priority_Is_valid( param->ss_low_priority ) )
- return EINVAL;
- break;
+ if ( policy == SCHED_SPORADIC ) {
+ if ( _Timespec_To_ticks( &param->ss_replenish_period ) <
+ _Timespec_To_ticks( &param->ss_initial_budget ) )
+ return EINVAL;
- default:
+ if ( !_POSIX_Priority_Is_valid( param->ss_low_priority ) )
return EINVAL;
+
+ *budget_algorithm = THREAD_CPU_BUDGET_ALGORITHM_CALLOUT;
+ *budget_callout = _POSIX_Threads_Sporadic_budget_callout;
+ return 0;
}
- return 0;
+
+ return EINVAL;
}