diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-05-27 17:31:46 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-05-31 15:20:31 +0200 |
commit | e3be6915989d79a8797b775974f501a359226319 (patch) | |
tree | ba03a5fdc008b33da067bb9837f8b6c6d82317e0 /c | |
parent | bsps: Use _Objects_Information_table (diff) | |
download | rtems-e3be6915989d79a8797b775974f501a359226319.tar.bz2 |
score: Remove idle field of Per_CPU_Control
This field is unused except for special case simulator clock drivers.
In these places use an alternative. Add and use
_Thread_Set_global_exit_status() and _Thread_Get_global_exit_status().
Diffstat (limited to 'c')
-rw-r--r-- | c/src/lib/libbsp/shared/clockdrv_shell.h | 7 | ||||
-rw-r--r-- | c/src/lib/libcpu/bfin/clock/clock.c | 7 | ||||
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c | 7 |
3 files changed, 15 insertions, 6 deletions
diff --git a/c/src/lib/libbsp/shared/clockdrv_shell.h b/c/src/lib/libbsp/shared/clockdrv_shell.h index 3e8d08c131..79192610de 100644 --- a/c/src/lib/libbsp/shared/clockdrv_shell.h +++ b/c/src/lib/libbsp/shared/clockdrv_shell.h @@ -73,8 +73,11 @@ rtems_isr Clock_isr( #ifdef CLOCK_DRIVER_USE_FAST_IDLE do { rtems_clock_tick(); - } while ( _Thread_Executing == _Thread_Idle && - _Thread_Heir == _Thread_Executing); + } while ( + _Thread_Heir == _Thread_Executing + && _Thread_Executing->Start.entry_point + == rtems_configuration_get_idle_task() + ); Clock_driver_support_at_tick(); return; diff --git a/c/src/lib/libcpu/bfin/clock/clock.c b/c/src/lib/libcpu/bfin/clock/clock.c index 530e5bad48..46525863b8 100644 --- a/c/src/lib/libcpu/bfin/clock/clock.c +++ b/c/src/lib/libcpu/bfin/clock/clock.c @@ -39,8 +39,11 @@ static rtems_isr clockISR(rtems_vector_number vector) { #ifdef CLOCK_DRIVER_USE_FAST_IDLE do { rtems_clock_tick(); - } while (_Thread_Executing == _Thread_Idle && - _Thread_Heir == _Thread_Executing); + } while ( + _Thread_Heir == _Thread_Executing + && _Thread_Executing->Start.entry_point + == rtems_configuration_get_idle_task() + ); #else rtems_clock_tick(); #endif diff --git a/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c b/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c index 01b72aa477..3033b70615 100644 --- a/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c +++ b/c/src/lib/libcpu/powerpc/mpc6xx/clock/c_clock.c @@ -98,8 +98,11 @@ static void clockHandler(void) #if (CLOCK_DRIVER_USE_FAST_IDLE == 1) do { rtems_clock_tick(); - } while ( _Thread_Executing == _Thread_Idle && - _Thread_Heir == _Thread_Executing); + } while ( + _Thread_Heir == _Thread_Executing + && _Thread_Executing->Start.entry_point + == rtems_configuration_get_idle_task() + ); #else rtems_clock_tick(); |