summaryrefslogtreecommitdiffstats
path: root/cpukit/score/src
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2009-09-11 15:35:52 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2009-09-11 15:35:52 +0000
commit442eac699df1468fff4cfb2ff44b4cac5bfaac84 (patch)
tree77cb58ce5d870b617112757c1d51e7dec59bb8a1 /cpukit/score/src
parentNew. (diff)
downloadrtems-442eac699df1468fff4cfb2ff44b4cac5bfaac84.tar.bz2
2009-09-11 Joel Sherrill <joel.sherrill@OARcorp.com>
* score/include/rtems/score/thread.h, score/src/threadhandler.c, score/src/threadinitialize.c, score/src/threadtickletimeslice.c: Disable thread protocol and scheduling capabilities not exercised when POSIX or ITRON API is disabled.
Diffstat (limited to 'cpukit/score/src')
-rw-r--r--cpukit/score/src/threadhandler.c13
-rw-r--r--cpukit/score/src/threadinitialize.c14
-rw-r--r--cpukit/score/src/threadtickletimeslice.c14
3 files changed, 26 insertions, 15 deletions
diff --git a/cpukit/score/src/threadhandler.c b/cpukit/score/src/threadhandler.c
index 762e26c82b..cf39656487 100644
--- a/cpukit/score/src/threadhandler.c
+++ b/cpukit/score/src/threadhandler.c
@@ -149,12 +149,15 @@ void _Thread_Handler( void )
(*(Thread_Entry_numeric) executing->Start.entry_point)(
executing->Start.numeric_argument
);
- } else if ( executing->Start.prototype == THREAD_START_POINTER ) {
- executing->Wait.return_argument =
- (*(Thread_Entry_pointer) executing->Start.entry_point)(
- executing->Start.pointer_argument
- );
}
+ #if defined(RTEMS_POSIX_API)
+ else if ( executing->Start.prototype == THREAD_START_POINTER ) {
+ executing->Wait.return_argument =
+ (*(Thread_Entry_pointer) executing->Start.entry_point)(
+ executing->Start.pointer_argument
+ );
+ }
+ #endif
#if defined(FUNCTIONALITY_NOT_CURRENTLY_USED_BY_ANY_API)
else if ( executing->Start.prototype == THREAD_START_BOTH_POINTER_FIRST ) {
executing->Wait.return_argument =
diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/threadinitialize.c
index f4b9660526..c41983fc34 100644
--- a/cpukit/score/src/threadinitialize.c
+++ b/cpukit/score/src/threadinitialize.c
@@ -166,11 +166,15 @@ bool _Thread_Initialize(
case THREAD_CPU_BUDGET_ALGORITHM_NONE:
case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:
break;
- case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:
- the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;
- break;
- case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:
- break;
+ #if defined(RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE)
+ case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:
+ the_thread->cpu_time_budget = _Thread_Ticks_per_timeslice;
+ break;
+ #endif
+ #if defined(RTEMS_SCORE_THREAD_ENABLE_SCHEDULER_CALLOUT)
+ case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:
+ break;
+ #endif
}
the_thread->Start.isr_level = isr_level;
diff --git a/cpukit/score/src/threadtickletimeslice.c b/cpukit/score/src/threadtickletimeslice.c
index c0e87e90ac..ab6469b3c3 100644
--- a/cpukit/score/src/threadtickletimeslice.c
+++ b/cpukit/score/src/threadtickletimeslice.c
@@ -76,16 +76,20 @@ void _Thread_Tickle_timeslice( void )
break;
case THREAD_CPU_BUDGET_ALGORITHM_RESET_TIMESLICE:
- case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:
+ #if defined(RTEMS_SCORE_THREAD_ENABLE_EXHAUST_TIMESLICE)
+ case THREAD_CPU_BUDGET_ALGORITHM_EXHAUST_TIMESLICE:
+ #endif
if ( (int)(--executing->cpu_time_budget) <= 0 ) {
_Thread_Reset_timeslice();
executing->cpu_time_budget = _Thread_Ticks_per_timeslice;
}
break;
- case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:
- if ( --executing->cpu_time_budget == 0 )
- (*executing->budget_callout)( executing );
- break;
+ #if defined(RTEMS_SCORE_THREAD_ENABLE_SCHEDULER_CALLOUT)
+ case THREAD_CPU_BUDGET_ALGORITHM_CALLOUT:
+ if ( --executing->cpu_time_budget == 0 )
+ (*executing->budget_callout)( executing );
+ break;
+ #endif
}
}