On Fri, May 15, 2015 at 7:41 AM, Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > Add watchdog header parameter to _Watchdog_Remove() to be in line with > the other operations. Add _Watchdog_Remove_ticks() and > _Watchdog_Remove_seconds() for convenience. > > Update #2307. > --- > cpukit/posix/src/alarm.c | 2 +- > cpukit/posix/src/psignalunblockthread.c | 2 +- > cpukit/posix/src/pthread.c | 2 +- > cpukit/posix/src/pthreadsetschedparam.c | 4 ++-- > cpukit/posix/src/timerdelete.c | 2 +- > cpukit/posix/src/timerinserthelper.c | 2 +- > cpukit/posix/src/timersettime.c | 2 +- > cpukit/posix/src/ualarm.c | 2 +- > cpukit/rtems/include/rtems/rtems/timerimpl.h | 13 ++++++++++--- > cpukit/rtems/src/eventseize.c | 2 +- > cpukit/rtems/src/eventsurrender.c | 2 +- > cpukit/rtems/src/ratemoncancel.c | 2 +- > cpukit/rtems/src/ratemondelete.c | 2 +- > cpukit/rtems/src/timercancel.c | 3 +-- > cpukit/rtems/src/timercreate.c | 21 +++++++++++++++++++++ > cpukit/rtems/src/timerdelete.c | 2 +- > cpukit/rtems/src/timerfireafter.c | 2 +- > cpukit/rtems/src/timerfirewhen.c | 2 +- > cpukit/rtems/src/timerreset.c | 2 +- > cpukit/rtems/src/timerserver.c | 19 ++++++++++++++++--- > cpukit/rtems/src/timerserverfireafter.c | 2 +- > cpukit/rtems/src/timerserverfirewhen.c | 2 +- > cpukit/score/include/rtems/score/mrspimpl.h | 2 +- > cpukit/score/include/rtems/score/watchdogimpl.h | 18 +++++++++++++++++- > cpukit/score/src/threadqenqueue.c | 2 +- > cpukit/score/src/threadrestart.c | 4 ++-- > cpukit/score/src/watchdogremove.c | 1 + > cpukit/score/src/watchdogtickle.c | 2 +- > testsuites/sptests/spintrcritical08/init.c | 2 +- > testsuites/sptests/spintrcritical09/init.c | 2 +- > 30 files changed, 92 insertions(+), 35 deletions(-) > > diff --git a/cpukit/posix/src/alarm.c b/cpukit/posix/src/alarm.c > index 4803661..6f051d7 100644 > --- a/cpukit/posix/src/alarm.c > +++ b/cpukit/posix/src/alarm.c > @@ -73,7 +73,7 @@ unsigned int alarm( > > _Thread_Disable_dispatch(); > > - state = _Watchdog_Remove( the_timer ); > + state = _Watchdog_Remove_seconds( the_timer ); > if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) { > /* > * The stop_time and start_time fields are snapshots of ticks since > diff --git a/cpukit/posix/src/psignalunblockthread.c > b/cpukit/posix/src/psignalunblockthread.c > index 1b3db68..3b310a9 100644 > --- a/cpukit/posix/src/psignalunblockthread.c > +++ b/cpukit/posix/src/psignalunblockthread.c > @@ -115,7 +115,7 @@ bool _POSIX_signals_Unblock_thread( > * queue, but is also interruptible by a POSIX signal. > */ > if ( _States_Is_delaying(the_thread->current_state) ) { > - (void) _Watchdog_Remove( &the_thread->Timer ); > + _Watchdog_Remove_ticks( &the_thread->Timer ); > _Thread_Unblock( the_thread ); > } else { > _Thread_queue_Extract_with_proxy( the_thread ); > diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c > index 4d28de5..97882bf 100644 > --- a/cpukit/posix/src/pthread.c > +++ b/cpukit/posix/src/pthread.c > @@ -286,7 +286,7 @@ static void _POSIX_Threads_Terminate_extension( > *(void **)the_thread->Wait.return_argument = value_ptr; > > if ( api->schedpolicy == SCHED_SPORADIC ) > - (void) _Watchdog_Remove( &api->Sporadic_timer ); > + _Watchdog_Remove_ticks( &api->Sporadic_timer ); > > _Thread_Enable_dispatch(); > } > diff --git a/cpukit/posix/src/pthreadsetschedparam.c > b/cpukit/posix/src/pthreadsetschedparam.c > index d5d0a5b..dcb70bd 100644 > --- a/cpukit/posix/src/pthreadsetschedparam.c > +++ b/cpukit/posix/src/pthreadsetschedparam.c > @@ -70,7 +70,7 @@ int pthread_setschedparam( > api = the_thread->API_Extensions[ THREAD_API_POSIX ]; > > if ( api->schedpolicy == SCHED_SPORADIC ) > - (void) _Watchdog_Remove( &api->Sporadic_timer ); > + _Watchdog_Remove_ticks( &api->Sporadic_timer ); > > api->schedpolicy = policy; > api->schedparam = *param; > @@ -99,7 +99,7 @@ int pthread_setschedparam( > > case SCHED_SPORADIC: > api->ss_high_priority = api->schedparam.sched_priority; > - _Watchdog_Remove( &api->Sporadic_timer ); > + _Watchdog_Remove_ticks( &api->Sporadic_timer ); > _POSIX_Threads_Sporadic_budget_TSR( 0, the_thread ); > break; > } > diff --git a/cpukit/posix/src/timerdelete.c b/cpukit/posix/src/timerdelete.c > index 71b25fa..e090be2 100644 > --- a/cpukit/posix/src/timerdelete.c > +++ b/cpukit/posix/src/timerdelete.c > @@ -54,7 +54,7 @@ int timer_delete( > case OBJECTS_LOCAL: > _Objects_Close( &_POSIX_Timer_Information, &ptimer->Object ); > ptimer->state = POSIX_TIMER_STATE_FREE; > - (void) _Watchdog_Remove( &ptimer->Timer ); > + _Watchdog_Remove_ticks( &ptimer->Timer ); > _Objects_Put( &ptimer->Object ); > _POSIX_Timer_Free( ptimer ); > _Objects_Allocator_unlock(); > diff --git a/cpukit/posix/src/timerinserthelper.c > b/cpukit/posix/src/timerinserthelper.c > index 9d02835..4d7c3fb 100644 > --- a/cpukit/posix/src/timerinserthelper.c > +++ b/cpukit/posix/src/timerinserthelper.c > @@ -39,7 +39,7 @@ bool _POSIX_Timer_Insert_helper( > { > ISR_Level level; > > - (void) _Watchdog_Remove( timer ); > + _Watchdog_Remove_ticks( timer ); > _ISR_Disable( level ); > > /* > diff --git a/cpukit/posix/src/timersettime.c b/cpukit/posix/src/timersettime.c > index 6cc3780..2967df6 100644 > --- a/cpukit/posix/src/timersettime.c > +++ b/cpukit/posix/src/timersettime.c > @@ -85,7 +85,7 @@ int timer_settime( > /* First, it verifies if the timer must be stopped */ > if ( normalize.it_value.tv_sec == 0 && normalize.it_value.tv_nsec == 0 > ) { > /* Stop the timer */ > - (void) _Watchdog_Remove( &ptimer->Timer ); > + _Watchdog_Remove_ticks( &ptimer->Timer ); > /* The old data of the timer are returned */ > if ( ovalue ) > *ovalue = ptimer->timer_data; > diff --git a/cpukit/posix/src/ualarm.c b/cpukit/posix/src/ualarm.c > index d9a85e6..9235ef1 100644 > --- a/cpukit/posix/src/ualarm.c > +++ b/cpukit/posix/src/ualarm.c > @@ -72,7 +72,7 @@ useconds_t ualarm( > > _Thread_Disable_dispatch(); > > - state = _Watchdog_Remove( the_timer ); > + state = _Watchdog_Remove_ticks( the_timer ); > if ( (state == WATCHDOG_ACTIVE) || (state == WATCHDOG_REMOVE_IT) ) { > /* > * The stop_time and start_time fields are snapshots of ticks since > diff --git a/cpukit/rtems/include/rtems/rtems/timerimpl.h > b/cpukit/rtems/include/rtems/rtems/timerimpl.h > index b695d5e..4f200ef 100644 > --- a/cpukit/rtems/include/rtems/rtems/timerimpl.h > +++ b/cpukit/rtems/include/rtems/rtems/timerimpl.h > @@ -50,9 +50,9 @@ extern "C" { > typedef struct Timer_server_Control Timer_server_Control; > > /** > - * @brief Method used to schedule the insertion of task based timers. > + * @brief Method used for task based timers. > */ > -typedef void (*Timer_server_Schedule_operation)( > +typedef void (*Timer_server_Method)( > Timer_server_Control *timer_server, > Timer_Control *timer > ); > @@ -84,9 +84,14 @@ struct Timer_server_Control { > Thread_Control *thread; > > /** > + * @brief The cancel method of the timer server. > + */ > + Timer_server_Method cancel; > + > + /** > * @brief The schedule operation method of the timer server. > */ > - Timer_server_Schedule_operation schedule_operation; > + Timer_server_Method schedule_operation; > > /** > * @brief Interval watchdogs triggered by the timer server. > @@ -220,6 +225,8 @@ RTEMS_INLINE_ROUTINE bool _Timer_Is_dormant_class ( > return ( the_class == TIMER_DORMANT ); > } > > +void _Timer_Cancel( Timer_Control *the_timer ); > + > /**@}*/ > > #ifdef __cplusplus > diff --git a/cpukit/rtems/src/eventseize.c b/cpukit/rtems/src/eventseize.c > index 9296656..36b1964 100644 > --- a/cpukit/rtems/src/eventseize.c > +++ b/cpukit/rtems/src/eventseize.c > @@ -101,7 +101,7 @@ void _Event_Seize( > wait_class | THREAD_WAIT_STATE_BLOCKED > ); > if ( !success ) { > - _Watchdog_Remove( &executing->Timer ); > + _Watchdog_Remove_ticks( &executing->Timer ); > _Thread_Unblock( executing ); > } > > diff --git a/cpukit/rtems/src/eventsurrender.c > b/cpukit/rtems/src/eventsurrender.c > index ba4e429..e29d203 100644 > --- a/cpukit/rtems/src/eventsurrender.c > +++ b/cpukit/rtems/src/eventsurrender.c > @@ -111,7 +111,7 @@ void _Event_Surrender( > _Thread_Lock_release_default( the_thread, lock_context ); > _Giant_Acquire( cpu_self ); > > - _Watchdog_Remove( &the_thread->Timer ); > + _Watchdog_Remove_ticks( &the_thread->Timer ); > _Thread_Unblock( the_thread ); > > _Giant_Release( cpu_self ); > diff --git a/cpukit/rtems/src/ratemoncancel.c > b/cpukit/rtems/src/ratemoncancel.c > index d4a9102..67b230f 100644 > --- a/cpukit/rtems/src/ratemoncancel.c > +++ b/cpukit/rtems/src/ratemoncancel.c > @@ -38,7 +38,7 @@ rtems_status_code rtems_rate_monotonic_cancel( > _Objects_Put( &the_period->Object ); > return RTEMS_NOT_OWNER_OF_RESOURCE; > } > - (void) _Watchdog_Remove( &the_period->Timer ); > + _Watchdog_Remove_ticks( &the_period->Timer ); > the_period->state = RATE_MONOTONIC_INACTIVE; > _Scheduler_Release_job( the_period->owner, 0 ); > _Objects_Put( &the_period->Object ); > diff --git a/cpukit/rtems/src/ratemondelete.c > b/cpukit/rtems/src/ratemondelete.c > index 971ad8e..77cf3fe 100644 > --- a/cpukit/rtems/src/ratemondelete.c > +++ b/cpukit/rtems/src/ratemondelete.c > @@ -37,7 +37,7 @@ rtems_status_code rtems_rate_monotonic_delete( > case OBJECTS_LOCAL: > _Scheduler_Release_job( the_period->owner, 0 ); > _Objects_Close( &_Rate_monotonic_Information, &the_period->Object ); > - (void) _Watchdog_Remove( &the_period->Timer ); > + _Watchdog_Remove_ticks( &the_period->Timer ); > the_period->state = RATE_MONOTONIC_INACTIVE; > _Objects_Put( &the_period->Object ); > _Rate_monotonic_Free( the_period ); > diff --git a/cpukit/rtems/src/timercancel.c b/cpukit/rtems/src/timercancel.c > index a8ce147..1e737a2 100644 > --- a/cpukit/rtems/src/timercancel.c > +++ b/cpukit/rtems/src/timercancel.c > @@ -45,8 +45,7 @@ rtems_status_code rtems_timer_cancel( > switch ( location ) { > > case OBJECTS_LOCAL: > - if ( !_Timer_Is_dormant_class( the_timer->the_class ) ) > - (void) _Watchdog_Remove( &the_timer->Ticker ); > + _Timer_Cancel( the_timer ); > _Objects_Put( &the_timer->Object ); > return RTEMS_SUCCESSFUL; > > diff --git a/cpukit/rtems/src/timercreate.c b/cpukit/rtems/src/timercreate.c > index 0b1c44b..390c965 100644 > --- a/cpukit/rtems/src/timercreate.c > +++ b/cpukit/rtems/src/timercreate.c > @@ -25,6 +25,27 @@ > #include <rtems/rtems/timerimpl.h> > #include <rtems/score/watchdogimpl.h> > > +void _Timer_Cancel( Timer_Control *the_timer ) > +{ > + Timer_server_Control *timer_server; > + > + switch ( the_timer->the_class ) { > + case TIMER_INTERVAL: > + _Watchdog_Remove_ticks( &the_timer->Ticker ); > + break; > + case TIMER_TIME_OF_DAY: > + _Watchdog_Remove_seconds( &the_timer->Ticker ); > + break; > + case TIMER_INTERVAL_ON_TASK: > + case TIMER_TIME_OF_DAY_ON_TASK: > + timer_server = _Timer_server; > + (*timer_server->cancel)( timer_server, the_timer ); > + break; > + default: Should this be an error case?
> + break; > + } > +} > + > rtems_status_code rtems_timer_create( > rtems_name name, > rtems_id *id > diff --git a/cpukit/rtems/src/timerdelete.c b/cpukit/rtems/src/timerdelete.c > index 19232c8..0849ec5 100644 > --- a/cpukit/rtems/src/timerdelete.c > +++ b/cpukit/rtems/src/timerdelete.c > @@ -38,7 +38,7 @@ rtems_status_code rtems_timer_delete( > > case OBJECTS_LOCAL: > _Objects_Close( &_Timer_Information, &the_timer->Object ); > - (void) _Watchdog_Remove( &the_timer->Ticker ); > + _Timer_Cancel( the_timer ); > _Objects_Put( &the_timer->Object ); > _Timer_Free( the_timer ); > _Objects_Allocator_unlock(); > diff --git a/cpukit/rtems/src/timerfireafter.c > b/cpukit/rtems/src/timerfireafter.c > index 07862cd..84cf46b 100644 > --- a/cpukit/rtems/src/timerfireafter.c > +++ b/cpukit/rtems/src/timerfireafter.c > @@ -46,7 +46,7 @@ rtems_status_code rtems_timer_fire_after( > switch ( location ) { > > case OBJECTS_LOCAL: > - (void) _Watchdog_Remove( &the_timer->Ticker ); > + _Timer_Cancel( the_timer ); > > _ISR_Disable( level ); > > diff --git a/cpukit/rtems/src/timerfirewhen.c > b/cpukit/rtems/src/timerfirewhen.c > index 6ac7d17..1acbaf9 100644 > --- a/cpukit/rtems/src/timerfirewhen.c > +++ b/cpukit/rtems/src/timerfirewhen.c > @@ -51,7 +51,7 @@ rtems_status_code rtems_timer_fire_when( > switch ( location ) { > > case OBJECTS_LOCAL: > - (void) _Watchdog_Remove( &the_timer->Ticker ); > + _Timer_Cancel( the_timer ); > the_timer->the_class = TIMER_TIME_OF_DAY; > _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); > _Watchdog_Insert_seconds( > diff --git a/cpukit/rtems/src/timerreset.c b/cpukit/rtems/src/timerreset.c > index 49c4925..7ab172e 100644 > --- a/cpukit/rtems/src/timerreset.c > +++ b/cpukit/rtems/src/timerreset.c > @@ -67,7 +67,7 @@ rtems_status_code rtems_timer_reset( > return RTEMS_INCORRECT_STATE; > } > #endif > - _Watchdog_Remove( &the_timer->Ticker ); > + (*timer_server->cancel)( timer_server, the_timer ); > (*timer_server->schedule_operation)( timer_server, the_timer ); > } else { > /* > diff --git a/cpukit/rtems/src/timerserver.c b/cpukit/rtems/src/timerserver.c > index 25191e4..15cbdfd 100644 > --- a/cpukit/rtems/src/timerserver.c > +++ b/cpukit/rtems/src/timerserver.c > @@ -38,7 +38,7 @@ static void _Timer_server_Stop_interval_system_watchdog( > Timer_server_Control *ts > ) > { > - _Watchdog_Remove( &ts->Interval_watchdogs.System_watchdog ); > + _Watchdog_Remove_ticks( &ts->Interval_watchdogs.System_watchdog ); > } > > static void _Timer_server_Reset_interval_system_watchdog( > @@ -71,7 +71,7 @@ static void _Timer_server_Stop_tod_system_watchdog( > Timer_server_Control *ts > ) > { > - _Watchdog_Remove( &ts->TOD_watchdogs.System_watchdog ); > + _Watchdog_Remove_seconds( &ts->TOD_watchdogs.System_watchdog ); > } > > static void _Timer_server_Reset_tod_system_watchdog( > @@ -210,6 +210,18 @@ static void _Timer_server_Insert_timer_and_make_snapshot( > _Thread_Enable_dispatch(); > } > > +static void _Timer_server_Cancel_method( > + Timer_server_Control *ts, > + Timer_Control *timer > +) > +{ > + if ( timer->the_class == TIMER_INTERVAL_ON_TASK ) { > + _Watchdog_Remove( &ts->Interval_watchdogs.Header, &timer->Ticker ); > + } else if ( timer->the_class == TIMER_TIME_OF_DAY_ON_TASK ) { > + _Watchdog_Remove( &ts->TOD_watchdogs.Header, &timer->Ticker ); > + } > +} > + > static void _Timer_server_Schedule_operation_method( > Timer_server_Control *ts, > Timer_Control *timer > @@ -563,9 +575,10 @@ rtems_status_code rtems_timer_initiate_server( > ); > > /* > - * Initialize the pointer to the timer schedule method so applications > that > + * Initialize the pointer to the timer server methods so applications that > * do not use the Timer Server do not have to pull it in. > */ > + ts->cancel = _Timer_server_Cancel_method; > ts->schedule_operation = _Timer_server_Schedule_operation_method; > > ts->Interval_watchdogs.last_snapshot = _Watchdog_Ticks_since_boot; > diff --git a/cpukit/rtems/src/timerserverfireafter.c > b/cpukit/rtems/src/timerserverfireafter.c > index 1256645..0636782 100644 > --- a/cpukit/rtems/src/timerserverfireafter.c > +++ b/cpukit/rtems/src/timerserverfireafter.c > @@ -50,7 +50,7 @@ rtems_status_code rtems_timer_server_fire_after( > switch ( location ) { > > case OBJECTS_LOCAL: > - (void) _Watchdog_Remove( &the_timer->Ticker ); > + _Timer_Cancel( the_timer ); > > _ISR_Disable( level ); > > diff --git a/cpukit/rtems/src/timerserverfirewhen.c > b/cpukit/rtems/src/timerserverfirewhen.c > index 32695fb..0069af1 100644 > --- a/cpukit/rtems/src/timerserverfirewhen.c > +++ b/cpukit/rtems/src/timerserverfirewhen.c > @@ -72,7 +72,7 @@ rtems_status_code rtems_timer_server_fire_when( > switch ( location ) { > > case OBJECTS_LOCAL: > - (void) _Watchdog_Remove( &the_timer->Ticker ); > + _Timer_Cancel( the_timer ); > the_timer->the_class = TIMER_TIME_OF_DAY_ON_TASK; > _Watchdog_Initialize( &the_timer->Ticker, routine, id, user_data ); > the_timer->Ticker.initial = seconds - _TOD_Seconds_since_epoch(); > diff --git a/cpukit/score/include/rtems/score/mrspimpl.h > b/cpukit/score/include/rtems/score/mrspimpl.h > index c40f41f..07f78ce 100644 > --- a/cpukit/score/include/rtems/score/mrspimpl.h > +++ b/cpukit/score/include/rtems/score/mrspimpl.h > @@ -216,7 +216,7 @@ RTEMS_INLINE_ROUTINE MRSP_Status _MRSP_Wait_for_ownership( > _Thread_Set_life_protection( initial_life_protection ); > > if ( timeout > 0 ) { > - _Watchdog_Remove( &executing->Timer ); > + _Watchdog_Remove_ticks( &executing->Timer ); > } > > return status; > diff --git a/cpukit/score/include/rtems/score/watchdogimpl.h > b/cpukit/score/include/rtems/score/watchdogimpl.h > index e548e7025..ddd1ca4 100644 > --- a/cpukit/score/include/rtems/score/watchdogimpl.h > +++ b/cpukit/score/include/rtems/score/watchdogimpl.h > @@ -99,10 +99,12 @@ void _Watchdog_Handler_initialization( void ); > * This routine removes @a the_watchdog from the watchdog chain on which > * it resides and returns the state @a the_watchdog timer was in. > * > + * @param[in] header The watchdog chain. > * @param[in] the_watchdog will be removed > * @retval the state in which @a the_watchdog was in when removed > */ > Watchdog_States _Watchdog_Remove ( > + Watchdog_Header *header, > Watchdog_Control *the_watchdog > ); > > @@ -306,6 +308,20 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Insert_seconds( > > } > > +RTEMS_INLINE_ROUTINE Watchdog_States _Watchdog_Remove_ticks( > + Watchdog_Control *the_watchdog > +) > +{ > + return _Watchdog_Remove( &_Watchdog_Ticks_header, the_watchdog ); > +} > + > +RTEMS_INLINE_ROUTINE Watchdog_States _Watchdog_Remove_seconds( > + Watchdog_Control *the_watchdog > +) > +{ > + return _Watchdog_Remove( &_Watchdog_Seconds_header, the_watchdog ); > +} > + > /** > * This routine resets THE_WATCHDOG timer to its state at INSERT > * time. This routine is valid only on interval watchdog timers > @@ -318,7 +334,7 @@ RTEMS_INLINE_ROUTINE void _Watchdog_Reset_ticks( > ) > { > > - (void) _Watchdog_Remove( the_watchdog ); > + _Watchdog_Remove_ticks( the_watchdog ); > > _Watchdog_Insert( &_Watchdog_Ticks_header, the_watchdog ); > > diff --git a/cpukit/score/src/threadqenqueue.c > b/cpukit/score/src/threadqenqueue.c > index 5f94ec9..590865d 100644 > --- a/cpukit/score/src/threadqenqueue.c > +++ b/cpukit/score/src/threadqenqueue.c > @@ -66,7 +66,7 @@ static void _Thread_blocking_operation_Finalize( > if ( _Watchdog_Is_active( &the_thread->Timer ) ) { > _Watchdog_Deactivate( &the_thread->Timer ); > _Thread_queue_Release( lock_context ); > - (void) _Watchdog_Remove( &the_thread->Timer ); > + _Watchdog_Remove_ticks( &the_thread->Timer ); > } else > _Thread_queue_Release( lock_context ); > > diff --git a/cpukit/score/src/threadrestart.c > b/cpukit/score/src/threadrestart.c > index e759b5b..8dea518 100644 > --- a/cpukit/score/src/threadrestart.c > +++ b/cpukit/score/src/threadrestart.c > @@ -62,7 +62,7 @@ static void _Thread_Make_zombie( Thread_Control *the_thread > ) > > _Thread_Set_state( the_thread, STATES_ZOMBIE ); > _Thread_queue_Extract_with_proxy( the_thread ); > - _Watchdog_Remove( &the_thread->Timer ); > + _Watchdog_Remove_ticks( &the_thread->Timer ); > > _ISR_lock_ISR_disable_and_acquire( &zombies->Lock, &lock_context ); > _Chain_Append_unprotected( &zombies->Chain, &the_thread->Object.Node ); > @@ -235,7 +235,7 @@ static void _Thread_Start_life_change( > > _Thread_Set_state( the_thread, STATES_RESTARTING ); > _Thread_queue_Extract_with_proxy( the_thread ); > - _Watchdog_Remove( &the_thread->Timer ); > + _Watchdog_Remove_ticks( &the_thread->Timer ); > _Scheduler_Set_priority_if_higher( scheduler, the_thread, priority ); > _Thread_Add_post_switch_action( the_thread, &the_thread->Life.Action ); > _Thread_Ready( the_thread ); > diff --git a/cpukit/score/src/watchdogremove.c > b/cpukit/score/src/watchdogremove.c > index 34d97b0..d689e3c 100644 > --- a/cpukit/score/src/watchdogremove.c > +++ b/cpukit/score/src/watchdogremove.c > @@ -23,6 +23,7 @@ > #include <rtems/score/watchdogimpl.h> > > Watchdog_States _Watchdog_Remove( > + Watchdog_Header *header, > Watchdog_Control *the_watchdog > ) > { Is the parameter unused in this function? > diff --git a/cpukit/score/src/watchdogtickle.c > b/cpukit/score/src/watchdogtickle.c > index 8c1a3a7..5b2f258 100644 > --- a/cpukit/score/src/watchdogtickle.c > +++ b/cpukit/score/src/watchdogtickle.c > @@ -74,7 +74,7 @@ void _Watchdog_Tickle( > } > > do { > - watchdog_state = _Watchdog_Remove( the_watchdog ); > + watchdog_state = _Watchdog_Remove( header, the_watchdog ); > > _ISR_Enable( level ); > > diff --git a/testsuites/sptests/spintrcritical08/init.c > b/testsuites/sptests/spintrcritical08/init.c > index 13544b2..f375cd4 100644 > --- a/testsuites/sptests/spintrcritical08/init.c > +++ b/testsuites/sptests/spintrcritical08/init.c > @@ -55,7 +55,7 @@ static rtems_timer_service_routine test_release_from_isr( > watchdog->delta_interval == 0 > && watchdog->routine == _Rate_monotonic_Timeout > ) { > - Watchdog_States state = _Watchdog_Remove( watchdog ); > + Watchdog_States state = _Watchdog_Remove_ticks( watchdog ); > > rtems_test_assert( state == WATCHDOG_ACTIVE ); > (*watchdog->routine)( watchdog->id, watchdog->user_data ); > diff --git a/testsuites/sptests/spintrcritical09/init.c > b/testsuites/sptests/spintrcritical09/init.c > index 2f9caa5..0e38351 100644 > --- a/testsuites/sptests/spintrcritical09/init.c > +++ b/testsuites/sptests/spintrcritical09/init.c > @@ -52,7 +52,7 @@ static rtems_timer_service_routine test_release_from_isr( > watchdog->delta_interval == 0 > && watchdog->routine == _Thread_queue_Timeout > ) { > - Watchdog_States state = _Watchdog_Remove( watchdog ); > + Watchdog_States state = _Watchdog_Remove_ticks( watchdog ); > > rtems_test_assert( state == WATCHDOG_ACTIVE ); > (*watchdog->routine)( watchdog->id, watchdog->user_data ); > -- > 1.8.4.5 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel