diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-22 10:21:03 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-22 16:57:25 +0200 |
commit | 4b48ece07d4aef3d43cf1865944f0cd1ca4a7b6c (patch) | |
tree | bb37e9f3b6b76d31db394cac5e036900d5cc0cc7 /cpukit | |
parent | score: Create chain implementation header (diff) | |
download | rtems-4b48ece07d4aef3d43cf1865944f0cd1ca4a7b6c.tar.bz2 |
score: Create watchdog implementation header
Move implementation specific parts of watchdog.h and watchdog.inl into
new header file watchdogimpl.h. The watchdog.h contains now only the
application visible API.
Diffstat (limited to 'cpukit')
70 files changed, 561 insertions, 524 deletions
diff --git a/cpukit/libmisc/capture/capture-cli.c b/cpukit/libmisc/capture/capture-cli.c index a0326b7489..4cf9b6b4c0 100644 --- a/cpukit/libmisc/capture/capture-cli.c +++ b/cpukit/libmisc/capture/capture-cli.c @@ -233,7 +233,7 @@ rtems_capture_cli_task_list (int argc __attribute__((un capture_timestamp (&ticks, &tick_offset); else { - ticks = _Watchdog_Ticks_since_boot; + ticks = rtems_clock_get_ticks_since_boot(); tick_offset = 0; } diff --git a/cpukit/libmisc/capture/capture.c b/cpukit/libmisc/capture/capture.c index d3f8c5b39c..c31a0790fc 100644 --- a/cpukit/libmisc/capture/capture.c +++ b/cpukit/libmisc/capture/capture.c @@ -121,7 +121,7 @@ static inline void rtems_capture_get_time (uint32_t* ticks, capture_timestamp (ticks, tick_offset); else { - *ticks = _Watchdog_Ticks_since_boot; + *ticks = rtems_clock_get_ticks_since_boot(); *tick_offset = 0; } } diff --git a/cpukit/libmisc/cpuuse/cpuusagereport.c b/cpukit/libmisc/cpuuse/cpuusagereport.c index 238d91a21d..5579b1bff2 100644 --- a/cpukit/libmisc/cpuuse/cpuusagereport.c +++ b/cpukit/libmisc/cpuuse/cpuusagereport.c @@ -25,6 +25,7 @@ #include <inttypes.h> #include <rtems/cpuuse.h> +#include <rtems/score/watchdogimpl.h> #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__ static bool is_executing_on_a_core( diff --git a/cpukit/libmisc/cpuuse/cpuusagereset.c b/cpukit/libmisc/cpuuse/cpuusagereset.c index 749eae2628..77bd095ffa 100644 --- a/cpukit/libmisc/cpuuse/cpuusagereset.c +++ b/cpukit/libmisc/cpuuse/cpuusagereset.c @@ -23,6 +23,7 @@ #include <inttypes.h> #include <rtems/cpuuse.h> +#include <rtems/score/watchdogimpl.h> static void CPU_usage_Per_thread_handler( Thread_Control *the_thread diff --git a/cpukit/posix/src/alarm.c b/cpukit/posix/src/alarm.c index 98edcb7a15..190a7fbd5b 100644 --- a/cpukit/posix/src/alarm.c +++ b/cpukit/posix/src/alarm.c @@ -24,6 +24,7 @@ #include <pthread.h> #include <rtems/system.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/posix/pthreadimpl.h> #include <rtems/posix/psignalimpl.h> diff --git a/cpukit/posix/src/nanosleep.c b/cpukit/posix/src/nanosleep.c index 7d37480218..1476c17c51 100644 --- a/cpukit/posix/src/nanosleep.c +++ b/cpukit/posix/src/nanosleep.c @@ -26,6 +26,7 @@ #include <rtems/score/scheduler.h> #include <rtems/score/thread.h> #include <rtems/score/tod.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/seterr.h> #include <rtems/score/timespec.h> diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c index 0f0c5e7758..a8f1a28b22 100644 --- a/cpukit/posix/src/psignal.c +++ b/cpukit/posix/src/psignal.c @@ -32,6 +32,7 @@ #include <rtems/score/isr.h> #include <rtems/score/thread.h> #include <rtems/score/threadq.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/score/wkspace.h> #include <rtems/seterr.h> #include <rtems/posix/threadsup.h> diff --git a/cpukit/posix/src/psignalunblockthread.c b/cpukit/posix/src/psignalunblockthread.c index 34816fa889..cbdbd38c66 100644 --- a/cpukit/posix/src/psignalunblockthread.c +++ b/cpukit/posix/src/psignalunblockthread.c @@ -26,6 +26,7 @@ #include <rtems/score/isr.h> #include <rtems/score/thread.h> #include <rtems/score/threadq.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/score/wkspace.h> #include <rtems/seterr.h> #include <rtems/posix/threadsup.h> diff --git a/cpukit/posix/src/pthread.c b/cpukit/posix/src/pthread.c index a82b0363eb..3df7478779 100644 --- a/cpukit/posix/src/pthread.c +++ b/cpukit/posix/src/pthread.c @@ -29,6 +29,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/userextimpl.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/score/wkspace.h> #include <rtems/posix/cancel.h> #include <rtems/posix/pthreadimpl.h> diff --git a/cpukit/posix/src/pthreadcreate.c b/cpukit/posix/src/pthreadcreate.c index 0414fd7603..fcac8d4e91 100644 --- a/cpukit/posix/src/pthreadcreate.c +++ b/cpukit/posix/src/pthreadcreate.c @@ -30,6 +30,7 @@ #include <rtems/posix/priorityimpl.h> #include <rtems/posix/time.h> #include <rtems/score/apimutex.h> +#include <rtems/score/watchdogimpl.h> static inline size_t _POSIX_Threads_Ensure_minimum_stack ( size_t size diff --git a/cpukit/posix/src/pthreadsetschedparam.c b/cpukit/posix/src/pthreadsetschedparam.c index 393c41f3d7..a8ac4458dd 100644 --- a/cpukit/posix/src/pthreadsetschedparam.c +++ b/cpukit/posix/src/pthreadsetschedparam.c @@ -26,6 +26,7 @@ #include <errno.h> #include <rtems/system.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/posix/pthreadimpl.h> #include <rtems/posix/priorityimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/posix/src/timercreate.c b/cpukit/posix/src/timercreate.c index 8316e58398..3af7fc4459 100644 --- a/cpukit/posix/src/timercreate.c +++ b/cpukit/posix/src/timercreate.c @@ -30,6 +30,7 @@ #include <rtems/posix/sigset.h> #include <rtems/posix/time.h> #include <rtems/posix/timerimpl.h> +#include <rtems/score/watchdogimpl.h> int timer_create( clockid_t clock_id, diff --git a/cpukit/posix/src/timerdelete.c b/cpukit/posix/src/timerdelete.c index 686dc78f1d..eaf7369d8c 100644 --- a/cpukit/posix/src/timerdelete.c +++ b/cpukit/posix/src/timerdelete.c @@ -27,6 +27,7 @@ #include <rtems/system.h> #include <rtems/seterr.h> #include <rtems/score/thread.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/posix/time.h> #include <rtems/posix/timerimpl.h> diff --git a/cpukit/posix/src/timergettime.c b/cpukit/posix/src/timergettime.c index b000ed4b47..40f0f610fa 100644 --- a/cpukit/posix/src/timergettime.c +++ b/cpukit/posix/src/timergettime.c @@ -28,6 +28,7 @@ #include <rtems/score/thread.h> #include <rtems/score/tod.h> #include <rtems/score/timespec.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/posix/timerimpl.h> /* diff --git a/cpukit/posix/src/timerinserthelper.c b/cpukit/posix/src/timerinserthelper.c index 66b3e9b007..3c900db9c2 100644 --- a/cpukit/posix/src/timerinserthelper.c +++ b/cpukit/posix/src/timerinserthelper.c @@ -25,7 +25,7 @@ #include <rtems/system.h> #include <rtems/seterr.h> #include <rtems/score/isr.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/posix/timerimpl.h> #include <rtems/posix/ptimer.h> diff --git a/cpukit/posix/src/timersettime.c b/cpukit/posix/src/timersettime.c index ae29e3d582..2b7f07403f 100644 --- a/cpukit/posix/src/timersettime.c +++ b/cpukit/posix/src/timersettime.c @@ -27,6 +27,7 @@ #include <rtems/seterr.h> #include <rtems/score/thread.h> #include <rtems/score/tod.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/posix/time.h> #include <rtems/posix/ptimer.h> #include <rtems/posix/timerimpl.h> diff --git a/cpukit/posix/src/ualarm.c b/cpukit/posix/src/ualarm.c index 01b842344b..74bfe8f557 100644 --- a/cpukit/posix/src/ualarm.c +++ b/cpukit/posix/src/ualarm.c @@ -22,6 +22,7 @@ /* #include <errno.h> */ #include <rtems/system.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/posix/pthreadimpl.h> #include <rtems/posix/psignalimpl.h> #include <rtems/posix/time.h> diff --git a/cpukit/rtems/src/clockgettickssinceboot.c b/cpukit/rtems/src/clockgettickssinceboot.c index cfd91b5c57..340b4bc385 100644 --- a/cpukit/rtems/src/clockgettickssinceboot.c +++ b/cpukit/rtems/src/clockgettickssinceboot.c @@ -24,7 +24,7 @@ #include <rtems/score/isr.h> #include <rtems/score/thread.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> rtems_interval rtems_clock_get_ticks_since_boot(void) { diff --git a/cpukit/rtems/src/clocksetnsecshandler.c b/cpukit/rtems/src/clocksetnsecshandler.c index 80cf1dd8e6..8b79d0c228 100644 --- a/cpukit/rtems/src/clocksetnsecshandler.c +++ b/cpukit/rtems/src/clocksetnsecshandler.c @@ -24,7 +24,7 @@ #include <rtems/score/isr.h> #include <rtems/score/thread.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> /* * rtems_clock_set_nanoseconds_extension diff --git a/cpukit/rtems/src/clocktick.c b/cpukit/rtems/src/clocktick.c index 8467fd6cf0..5e46e94ee5 100644 --- a/cpukit/rtems/src/clocktick.c +++ b/cpukit/rtems/src/clocktick.c @@ -24,7 +24,7 @@ #include <rtems/score/isr.h> #include <rtems/score/thread.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_clock_tick( void ) { diff --git a/cpukit/rtems/src/eventseize.c b/cpukit/rtems/src/eventseize.c index 4cb1f80d69..f7a98adcdf 100644 --- a/cpukit/rtems/src/eventseize.c +++ b/cpukit/rtems/src/eventseize.c @@ -19,6 +19,7 @@ #endif #include <rtems/rtems/event.h> +#include <rtems/score/watchdogimpl.h> /* * INTERRUPT LATENCY: diff --git a/cpukit/rtems/src/eventsurrender.c b/cpukit/rtems/src/eventsurrender.c index bfa29c425a..0f72f5ab3c 100644 --- a/cpukit/rtems/src/eventsurrender.c +++ b/cpukit/rtems/src/eventsurrender.c @@ -19,6 +19,7 @@ #endif #include <rtems/rtems/event.h> +#include <rtems/score/watchdogimpl.h> void _Event_Surrender( Thread_Control *the_thread, diff --git a/cpukit/rtems/src/ratemoncancel.c b/cpukit/rtems/src/ratemoncancel.c index 4a2e49c9c1..d50f80177e 100644 --- a/cpukit/rtems/src/ratemoncancel.c +++ b/cpukit/rtems/src/ratemoncancel.c @@ -25,6 +25,7 @@ #include <rtems/score/object.h> #include <rtems/rtems/ratemon.h> #include <rtems/score/thread.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_rate_monotonic_cancel( rtems_id id diff --git a/cpukit/rtems/src/ratemoncreate.c b/cpukit/rtems/src/ratemoncreate.c index 2e5e975d5d..ae60514ab9 100644 --- a/cpukit/rtems/src/ratemoncreate.c +++ b/cpukit/rtems/src/ratemoncreate.c @@ -25,6 +25,7 @@ #include <rtems/score/object.h> #include <rtems/rtems/ratemon.h> #include <rtems/score/thread.h> +#include <rtems/score/watchdogimpl.h> /* * rtems_rate_monotonic_create diff --git a/cpukit/rtems/src/ratemondelete.c b/cpukit/rtems/src/ratemondelete.c index 35ee9c4ff6..e1d732ea3c 100644 --- a/cpukit/rtems/src/ratemondelete.c +++ b/cpukit/rtems/src/ratemondelete.c @@ -25,6 +25,7 @@ #include <rtems/score/object.h> #include <rtems/rtems/ratemon.h> #include <rtems/score/thread.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_rate_monotonic_delete( rtems_id id diff --git a/cpukit/rtems/src/ratemonperiod.c b/cpukit/rtems/src/ratemonperiod.c index 2018123e25..fc74aa2c8b 100644 --- a/cpukit/rtems/src/ratemonperiod.c +++ b/cpukit/rtems/src/ratemonperiod.c @@ -25,6 +25,7 @@ #include <rtems/score/object.h> #include <rtems/rtems/ratemon.h> #include <rtems/score/thread.h> +#include <rtems/score/watchdogimpl.h> bool _Rate_monotonic_Get_status( Rate_monotonic_Control *the_period, diff --git a/cpukit/rtems/src/ratemontimeout.c b/cpukit/rtems/src/ratemontimeout.c index 59461d1526..70d119af88 100644 --- a/cpukit/rtems/src/ratemontimeout.c +++ b/cpukit/rtems/src/ratemontimeout.c @@ -25,6 +25,7 @@ #include <rtems/score/object.h> #include <rtems/rtems/ratemon.h> #include <rtems/score/thread.h> +#include <rtems/score/watchdogimpl.h> void _Rate_monotonic_Timeout( Objects_Id id, diff --git a/cpukit/rtems/src/taskwakeafter.c b/cpukit/rtems/src/taskwakeafter.c index 665423409b..7bf4c88f1f 100644 --- a/cpukit/rtems/src/taskwakeafter.c +++ b/cpukit/rtems/src/taskwakeafter.c @@ -33,6 +33,7 @@ #include <rtems/score/wkspace.h> #include <rtems/score/apiext.h> #include <rtems/score/sysstate.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_task_wake_after( rtems_interval ticks diff --git a/cpukit/rtems/src/taskwakewhen.c b/cpukit/rtems/src/taskwakewhen.c index ffa5ddcaeb..4f6204ac25 100644 --- a/cpukit/rtems/src/taskwakewhen.c +++ b/cpukit/rtems/src/taskwakewhen.c @@ -33,6 +33,7 @@ #include <rtems/score/wkspace.h> #include <rtems/score/apiext.h> #include <rtems/score/sysstate.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_task_wake_when( rtems_time_of_day *time_buffer diff --git a/cpukit/rtems/src/timercancel.c b/cpukit/rtems/src/timercancel.c index 01f583d0b2..84eaee040d 100644 --- a/cpukit/rtems/src/timercancel.c +++ b/cpukit/rtems/src/timercancel.c @@ -21,7 +21,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> /* * rtems_timer_cancel diff --git a/cpukit/rtems/src/timercreate.c b/cpukit/rtems/src/timercreate.c index f37b9e18c0..5968fb0316 100644 --- a/cpukit/rtems/src/timercreate.c +++ b/cpukit/rtems/src/timercreate.c @@ -25,7 +25,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_timer_create( rtems_name name, diff --git a/cpukit/rtems/src/timerdelete.c b/cpukit/rtems/src/timerdelete.c index a9e4e3245b..7d3a722ad7 100644 --- a/cpukit/rtems/src/timerdelete.c +++ b/cpukit/rtems/src/timerdelete.c @@ -25,7 +25,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_timer_delete( rtems_id id diff --git a/cpukit/rtems/src/timerfireafter.c b/cpukit/rtems/src/timerfireafter.c index 2c34797126..62cc2172e2 100644 --- a/cpukit/rtems/src/timerfireafter.c +++ b/cpukit/rtems/src/timerfireafter.c @@ -25,7 +25,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_timer_fire_after( rtems_id id, diff --git a/cpukit/rtems/src/timerfirewhen.c b/cpukit/rtems/src/timerfirewhen.c index 9bd786b5b3..2cdfc9842a 100644 --- a/cpukit/rtems/src/timerfirewhen.c +++ b/cpukit/rtems/src/timerfirewhen.c @@ -25,7 +25,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_timer_fire_when( rtems_id id, diff --git a/cpukit/rtems/src/timerreset.c b/cpukit/rtems/src/timerreset.c index 23ebb46744..4afcbb2762 100644 --- a/cpukit/rtems/src/timerreset.c +++ b/cpukit/rtems/src/timerreset.c @@ -25,7 +25,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> /* * rtems_timer_reset diff --git a/cpukit/rtems/src/timerserver.c b/cpukit/rtems/src/timerserver.c index c7570985d8..ef32f00f70 100644 --- a/cpukit/rtems/src/timerserver.c +++ b/cpukit/rtems/src/timerserver.c @@ -33,7 +33,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/rtems/tasks.h> #include <rtems/rtems/support.h> diff --git a/cpukit/rtems/src/timerserverfireafter.c b/cpukit/rtems/src/timerserverfireafter.c index 27d52c2c00..c34a7e3bc0 100644 --- a/cpukit/rtems/src/timerserverfireafter.c +++ b/cpukit/rtems/src/timerserverfireafter.c @@ -25,7 +25,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> rtems_status_code rtems_timer_server_fire_after( rtems_id id, diff --git a/cpukit/rtems/src/timerserverfirewhen.c b/cpukit/rtems/src/timerserverfirewhen.c index a27095fb48..228c75dd76 100644 --- a/cpukit/rtems/src/timerserverfirewhen.c +++ b/cpukit/rtems/src/timerserverfirewhen.c @@ -25,7 +25,7 @@ #include <rtems/score/thread.h> #include <rtems/rtems/timer.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> /* * rtems_timer_server_fire_when diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c index 5d1419cdb2..f83bf30c61 100644 --- a/cpukit/sapi/src/exinit.c +++ b/cpukit/sapi/src/exinit.c @@ -52,7 +52,7 @@ #include <rtems/score/thread.h> #include <rtems/score/tod.h> #include <rtems/score/userextimpl.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/score/wkspace.h> #include <rtems/sptables.h> diff --git a/cpukit/score/Makefile.am b/cpukit/score/Makefile.am index 9417227e3f..cb5628ab63 100644 --- a/cpukit/score/Makefile.am +++ b/cpukit/score/Makefile.am @@ -62,6 +62,7 @@ include_rtems_score_HEADERS += include/rtems/score/tqdata.h include_rtems_score_HEADERS += include/rtems/score/userext.h include_rtems_score_HEADERS += include/rtems/score/userextimpl.h include_rtems_score_HEADERS += include/rtems/score/watchdog.h +include_rtems_score_HEADERS += include/rtems/score/watchdogimpl.h include_rtems_score_HEADERS += include/rtems/score/wkspace.h include_rtems_score_HEADERS += include/rtems/score/cpuopts.h include_rtems_score_HEADERS += include/rtems/score/basedefs.h @@ -106,7 +107,6 @@ include_rtems_score_HEADERS += inline/rtems/score/thread.inl include_rtems_score_HEADERS += inline/rtems/score/threadq.inl include_rtems_score_HEADERS += inline/rtems/score/tod.inl include_rtems_score_HEADERS += inline/rtems/score/tqdata.inl -include_rtems_score_HEADERS += inline/rtems/score/watchdog.inl include_rtems_score_HEADERS += inline/rtems/score/wkspace.inl if HAS_MP diff --git a/cpukit/score/include/rtems/score/watchdog.h b/cpukit/score/include/rtems/score/watchdog.h index 6dd0b5d0ce..b67e5ca28c 100644 --- a/cpukit/score/include/rtems/score/watchdog.h +++ b/cpukit/score/include/rtems/score/watchdog.h @@ -20,6 +20,12 @@ #ifndef _RTEMS_SCORE_WATCHDOG_H #define _RTEMS_SCORE_WATCHDOG_H +#include <rtems/score/object.h> + +#ifdef __cplusplus +extern "C" { +#endif + /** * @defgroup ScoreWatchdog Watchdog Handler * @@ -33,20 +39,6 @@ */ /**@{*/ -#include <rtems/score/object.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @brief Control block used to manage intervals. - * - * The following type defines the control block used to manage - * intervals. - */ -#define WATCHDOG_MAXIMUM_INTERVAL ((Watchdog_Interval) 0xffffffff) - /** * @brief Type is used to specify the length of intervals. * @@ -55,15 +47,6 @@ extern "C" { typedef uint32_t Watchdog_Interval; /** - * @brief Pointer to the BSP plugin to obtain the number - * of nanoseconds since the last clock tick. - * - * This type defines a pointer to the BSP plugin to obtain the number - * of nanoseconds since the last clock tick. - */ -typedef uint32_t (*Watchdog_Nanoseconds_since_last_tick_routine)(void); - -/** * @brief Return type from a Watchdog Service Routine. * * This type defines the return type from a Watchdog Service Routine. @@ -81,6 +64,15 @@ typedef Watchdog_Service_routine ( *Watchdog_Service_routine_entry )( ); /** + * @brief Pointer to the BSP plugin to obtain the number + * of nanoseconds since the last clock tick. + * + * This type defines a pointer to the BSP plugin to obtain the number + * of nanoseconds since the last clock tick. + */ +typedef uint32_t (*Watchdog_Nanoseconds_since_last_tick_routine)(void); + +/** * @brief The constant for indefinite wait. * * This is the constant for indefinite wait. It is actually an @@ -111,22 +103,6 @@ typedef enum { } Watchdog_States; /** - * @brief the manner in which a watchdog chain may - * be adjusted by the @ref _Watchdog_Adjust routine. - * - * The following enumerated type details the manner in which - * a watchdog chain may be adjusted by the @ref _Watchdog_Adjust - * routine. The direction indicates a movement FORWARD - * or BACKWARD in time. - */ -typedef enum { - /** adjust delta value forward */ - WATCHDOG_FORWARD, - /** adjust delta value backward */ - WATCHDOG_BACKWARD -} Watchdog_Adjust_directions; - -/** * @brief The control block used to manage each watchdog timer. * * The following record defines the control block used @@ -157,198 +133,11 @@ typedef struct { void *user_data; } Watchdog_Control; -/** - * @brief Watchdog synchronization level. - * - * This used for synchronization purposes - * during an insert on a watchdog delta chain. - */ -SCORE_EXTERN volatile uint32_t _Watchdog_Sync_level; - -/** - * @brief Watchdog synchronization count. - * - * This used for synchronization purposes - * during an insert on a watchdog delta chain. - */ -SCORE_EXTERN volatile uint32_t _Watchdog_Sync_count; - -/** - * @brief The number of ticks since the system was booted. - * - * This contains the number of ticks since the system was booted. - */ - -SCORE_EXTERN volatile Watchdog_Interval _Watchdog_Ticks_since_boot; - -/** - * @brief The number of nanoseconds since the last clock tick. - * - * This is a pointer to the optional BSP plugin to obtain the number - * of nanoseconds since the last clock tick. - */ -extern Watchdog_Nanoseconds_since_last_tick_routine - _Watchdog_Nanoseconds_since_tick_handler; - -/** - * @brief Watchdog chain which is managed at ticks. - * - * This is the watchdog chain which is managed at ticks. - */ -SCORE_EXTERN Chain_Control _Watchdog_Ticks_chain; - -/** - * @brief Watchdog chain which is managed at second boundaries. - * - * This is the watchdog chain which is managed at second boundaries. - */ -SCORE_EXTERN Chain_Control _Watchdog_Seconds_chain; - -/** - * @brief Initialize the watchdog handler. - * - * This routine initializes the watchdog handler. The watchdog - * synchronization flag is initialized and the watchdog chains are - * initialized and emptied. - */ -void _Watchdog_Handler_initialization( void ); - -/** - * @brief Removes @a the_watchdog from the watchdog chain. - * - * 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] the_watchdog will be removed - * @retval the state in which @a the_watchdog was in when removed - */ -Watchdog_States _Watchdog_Remove ( - Watchdog_Control *the_watchdog -); - -/** - * @brief Adjusts the @a header watchdog chain in the forward - * or backward @a direction for @a units ticks. - * - * This routine adjusts the @a header watchdog chain in the forward - * or backward @a direction for @a units ticks. - * - * @param[in] header is the watchdog chain to adjust - * @param[in] direction is the direction to adjust @a header - * @param[in] units is the number of units to adjust @a header - */ -void _Watchdog_Adjust ( - Chain_Control *header, - Watchdog_Adjust_directions direction, - Watchdog_Interval units -); - -/** - * @brief Adjusts the @a header watchdog chain in the forward - * @a direction for @a units_arg ticks. - * - * This routine adjusts the @a header watchdog chain in the forward - * @a direction for @a units_arg ticks. - * - * @param[in] header is the watchdog chain to adjust - * @param[in] units_arg is the number of units to adjust @a header - * @param[in] to_fire is a pointer to an initialized Chain_Control to which - * all watchdog instances that are to be fired will be placed. - * - * @note This always adjusts forward. - */ -void _Watchdog_Adjust_to_chain( - Chain_Control *header, - Watchdog_Interval units_arg, - Chain_Control *to_fire - -); - -/** - * @brief Inserts @a the_watchdog into the @a header watchdog chain - * for a time of @a units. - * - * This routine inserts @a the_watchdog into the @a header watchdog chain - * for a time of @a units. - * Update the delta interval counters. - * - * @param[in] header is @a the_watchdog list to insert @a the_watchdog on - * @param[in] the_watchdog is the watchdog to insert - */ -void _Watchdog_Insert ( - Chain_Control *header, - Watchdog_Control *the_watchdog -); - -/** - * @brief This routine is invoked at appropriate intervals to update - * the @a header watchdog chain. - * - * This routine is invoked at appropriate intervals to update - * the @a header watchdog chain. - * This routine decrements the delta counter in response to a tick. - * - * @param[in] header is the watchdog chain to tickle - */ -void _Watchdog_Tickle ( - Chain_Control *header -); - -/** - * @brief Report information on a single watchdog instance. - * - * This method prints a one line report on the watchdog instance - * provided. The @a name may be used to identify the watchdog and - * a space will be printed after @a name if it is not NULL. - * - * @param[in] name is a string to prefix the line with. If NULL, - * nothing is printed. - * @param[in] watch is the watchdog instance to be printed. - * - * @note This is a debug routine. It uses printk() and prudence should - * exercised when using it. - */ -void _Watchdog_Report( - const char *name, - Watchdog_Control *watch -); - -/** - * @brief Report information on a watchdog chain. - * - * This method prints report on the watchdog chain provided. - * The @a name may be used to identify the watchdog chain and - * a space will be printed after @a name if it is not NULL. - * - * @param[in] name is a string to prefix the line with. If NULL, - * nothing is printed. - * @param[in] header is the watchdog chain to be printed. - * - * @note This is a debug routine. It uses printk() and prudence should - * exercised when using it. It also disables interrupts so the - * chain can be traversed in a single atomic pass. - */ -void _Watchdog_Report_chain( - const char *name, - Chain_Control *header -); - -/** - * @brief Handler for default nanoseconds since last tick. - * - * @retval 0 Always. - */ -uint32_t _Watchdog_Nanoseconds_since_tick_default_handler( void ); - -#ifndef __RTEMS_APPLICATION__ -#include <rtems/score/watchdog.inl> -#endif +/**@}*/ #ifdef __cplusplus } #endif -/**@}*/ - #endif /* end of include file */ diff --git a/cpukit/score/include/rtems/score/watchdogimpl.h b/cpukit/score/include/rtems/score/watchdogimpl.h new file mode 100644 index 0000000000..e0324ff257 --- /dev/null +++ b/cpukit/score/include/rtems/score/watchdogimpl.h @@ -0,0 +1,476 @@ +/** + * @file + * + * @brief Inlined Routines in the Watchdog Handler + * + * This file contains the static inline implementation of all inlined + * routines in the Watchdog Handler. + */ + +/* + * COPYRIGHT (c) 1989-2004. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.com/license/LICENSE. + */ + +#ifndef _RTEMS_SCORE_WATCHDOGIMPL_H +#define _RTEMS_SCORE_WATCHDOGIMPL_H + +#include <rtems/score/watchdog.h> +#include <rtems/score/chainimpl.h> + +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @addtogroup ScoreWatchdog + * @{ + */ + +/** + * @brief Control block used to manage intervals. + * + * The following type defines the control block used to manage + * intervals. + */ +#define WATCHDOG_MAXIMUM_INTERVAL ((Watchdog_Interval) 0xffffffff) + +/** + * @brief the manner in which a watchdog chain may + * be adjusted by the @ref _Watchdog_Adjust routine. + * + * The following enumerated type details the manner in which + * a watchdog chain may be adjusted by the @ref _Watchdog_Adjust + * routine. The direction indicates a movement FORWARD + * or BACKWARD in time. + */ +typedef enum { + /** adjust delta value forward */ + WATCHDOG_FORWARD, + /** adjust delta value backward */ + WATCHDOG_BACKWARD +} Watchdog_Adjust_directions; + +/** + * @brief Watchdog synchronization level. + * + * This used for synchronization purposes + * during an insert on a watchdog delta chain. + */ +SCORE_EXTERN volatile uint32_t _Watchdog_Sync_level; + +/** + * @brief Watchdog synchronization count. + * + * This used for synchronization purposes + * during an insert on a watchdog delta chain. + */ +SCORE_EXTERN volatile uint32_t _Watchdog_Sync_count; + +/** + * @brief The number of ticks since the system was booted. + * + * This contains the number of ticks since the system was booted. + */ + +SCORE_EXTERN volatile Watchdog_Interval _Watchdog_Ticks_since_boot; + +/** + * @brief The number of nanoseconds since the last clock tick. + * + * This is a pointer to the optional BSP plugin to obtain the number + * of nanoseconds since the last clock tick. + */ +extern Watchdog_Nanoseconds_since_last_tick_routine + _Watchdog_Nanoseconds_since_tick_handler; + +/** + * @brief Watchdog chain which is managed at ticks. + * + * This is the watchdog chain which is managed at ticks. + */ +SCORE_EXTERN Chain_Control _Watchdog_Ticks_chain; + +/** + * @brief Watchdog chain which is managed at second boundaries. + * + * This is the watchdog chain which is managed at second boundaries. + */ +SCORE_EXTERN Chain_Control _Watchdog_Seconds_chain; + +/** + * @brief Initialize the watchdog handler. + * + * This routine initializes the watchdog handler. The watchdog + * synchronization flag is initialized and the watchdog chains are + * initialized and emptied. + */ +void _Watchdog_Handler_initialization( void ); + +/** + * @brief Removes @a the_watchdog from the watchdog chain. + * + * 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] the_watchdog will be removed + * @retval the state in which @a the_watchdog was in when removed + */ +Watchdog_States _Watchdog_Remove ( + Watchdog_Control *the_watchdog +); + +/** + * @brief Adjusts the @a header watchdog chain in the forward + * or backward @a direction for @a units ticks. + * + * This routine adjusts the @a header watchdog chain in the forward + * or backward @a direction for @a units ticks. + * + * @param[in] header is the watchdog chain to adjust + * @param[in] direction is the direction to adjust @a header + * @param[in] units is the number of units to adjust @a header + */ +void _Watchdog_Adjust ( + Chain_Control *header, + Watchdog_Adjust_directions direction, + Watchdog_Interval units +); + +/** + * @brief Adjusts the @a header watchdog chain in the forward + * @a direction for @a units_arg ticks. + * + * This routine adjusts the @a header watchdog chain in the forward + * @a direction for @a units_arg ticks. + * + * @param[in] header is the watchdog chain to adjust + * @param[in] units_arg is the number of units to adjust @a header + * @param[in] to_fire is a pointer to an initialized Chain_Control to which + * all watchdog instances that are to be fired will be placed. + * + * @note This always adjusts forward. + */ +void _Watchdog_Adjust_to_chain( + Chain_Control *header, + Watchdog_Interval units_arg, + Chain_Control *to_fire + +); + +/** + * @brief Inserts @a the_watchdog into the @a header watchdog chain + * for a time of @a units. + * + * This routine inserts @a the_watchdog into the @a header watchdog chain + * for a time of @a units. + * Update the delta interval counters. + * + * @param[in] header is @a the_watchdog list to insert @a the_watchdog on + * @param[in] the_watchdog is the watchdog to insert + */ +void _Watchdog_Insert ( + Chain_Control *header, + Watchdog_Control *the_watchdog +); + +/** + * @brief This routine is invoked at appropriate intervals to update + * the @a header watchdog chain. + * + * This routine is invoked at appropriate intervals to update + * the @a header watchdog chain. + * This routine decrements the delta counter in response to a tick. + * + * @param[in] header is the watchdog chain to tickle + */ +void _Watchdog_Tickle ( + Chain_Control *header +); + +/** + * @brief Report information on a single watchdog instance. + * + * This method prints a one line report on the watchdog instance + * provided. The @a name may be used to identify the watchdog and + * a space will be printed after @a name if it is not NULL. + * + * @param[in] name is a string to prefix the line with. If NULL, + * nothing is printed. + * @param[in] watch is the watchdog instance to be printed. + * + * @note This is a debug routine. It uses printk() and prudence should + * exercised when using it. + */ +void _Watchdog_Report( + const char *name, + Watchdog_Control *watch +); + +/** + * @brief Report information on a watchdog chain. + * + * This method prints report on the watchdog chain provided. + * The @a name may be used to identify the watchdog chain and + * a space will be printed after @a name if it is not NULL. + * + * @param[in] name is a string to prefix the line with. If NULL, + * nothing is printed. + * @param[in] header is the watchdog chain to be printed. + * + * @note This is a debug routine. It uses printk() and prudence should + * exercised when using it. It also disables interrupts so the + * chain can be traversed in a single atomic pass. + */ +void _Watchdog_Report_chain( + const char *name, + Chain_Control *header +); + +/** + * @brief Handler for default nanoseconds since last tick. + * + * @retval 0 Always. + */ +uint32_t _Watchdog_Nanoseconds_since_tick_default_handler( void ); + +/** + * This routine initializes the specified watchdog. The watchdog is + * made inactive, the watchdog id and handler routine are set to the + * specified values. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Initialize( + Watchdog_Control *the_watchdog, + Watchdog_Service_routine_entry routine, + Objects_Id id, + void *user_data +) +{ + the_watchdog->state = WATCHDOG_INACTIVE; + the_watchdog->routine = routine; + the_watchdog->id = id; + the_watchdog->user_data = user_data; +} + +/** + * This routine returns true if the watchdog timer is in the ACTIVE + * state, and false otherwise. + */ + +RTEMS_INLINE_ROUTINE bool _Watchdog_Is_active( + Watchdog_Control *the_watchdog +) +{ + + return ( the_watchdog->state == WATCHDOG_ACTIVE ); + +} + +/** + * This routine activates THE_WATCHDOG timer which is already + * on a watchdog chain. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Activate( + Watchdog_Control *the_watchdog +) +{ + + the_watchdog->state = WATCHDOG_ACTIVE; + +} + +/** + * This routine deactivates THE_WATCHDOG timer which will remain + * on a watchdog chain. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( + Watchdog_Control *the_watchdog +) +{ + + the_watchdog->state = WATCHDOG_REMOVE_IT; + +} + +/** + * This routine is invoked at each clock tick to update the ticks + * watchdog chain. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void ) +{ + + _Watchdog_Tickle( &_Watchdog_Ticks_chain ); + +} + +/** + * This routine is invoked at each clock tick to update the seconds + * watchdog chain. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void ) +{ + + _Watchdog_Tickle( &_Watchdog_Seconds_chain ); + +} + +/** + * This routine inserts THE_WATCHDOG into the ticks watchdog chain + * for a time of UNITS ticks. The INSERT_MODE indicates whether + * THE_WATCHDOG is to be activated automatically or later, explicitly + * by the caller. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Insert_ticks( + Watchdog_Control *the_watchdog, + Watchdog_Interval units +) +{ + + the_watchdog->initial = units; + + _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); + +} + +/** + * This routine inserts THE_WATCHDOG into the seconds watchdog chain + * for a time of UNITS seconds. The INSERT_MODE indicates whether + * THE_WATCHDOG is to be activated automatically or later, explicitly + * by the caller. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Insert_seconds( + Watchdog_Control *the_watchdog, + Watchdog_Interval units +) +{ + + the_watchdog->initial = units; + + _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); + +} + +/** + * This routine adjusts the seconds watchdog chain in the forward + * or backward DIRECTION for UNITS seconds. This is invoked when the + * current time of day is changed. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_seconds( + Watchdog_Adjust_directions direction, + Watchdog_Interval units +) +{ + + _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); + +} + +/** + * This routine adjusts the ticks watchdog chain in the forward + * or backward DIRECTION for UNITS ticks. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_ticks( + Watchdog_Adjust_directions direction, + Watchdog_Interval units +) +{ + + _Watchdog_Adjust( &_Watchdog_Ticks_chain, direction, units ); + +} + +/** + * This routine resets THE_WATCHDOG timer to its state at INSERT + * time. This routine is valid only on interval watchdog timers + * and is used to make an interval watchdog timer fire "every" so + * many ticks. + */ + +RTEMS_INLINE_ROUTINE void _Watchdog_Reset( + Watchdog_Control *the_watchdog +) +{ + + (void) _Watchdog_Remove( the_watchdog ); + + _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); + +} + +/** + * This routine returns a pointer to the watchdog timer following + * THE_WATCHDOG on the watchdog chain. + */ + +RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( + Watchdog_Control *the_watchdog +) +{ + + return ( (Watchdog_Control *) the_watchdog->Node.next ); + +} + +/** + * This routine returns a pointer to the watchdog timer preceding + * THE_WATCHDOG on the watchdog chain. + */ + +RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Previous( + Watchdog_Control *the_watchdog +) +{ + + return ( (Watchdog_Control *) the_watchdog->Node.previous ); + +} + +/** + * This routine returns a pointer to the first watchdog timer + * on the watchdog chain HEADER. + */ + +RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( + Chain_Control *header +) +{ + + return ( (Watchdog_Control *) _Chain_First( header ) ); + +} + +/** + * This routine returns a pointer to the last watchdog timer + * on the watchdog chain HEADER. + */ + +RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Last( + Chain_Control *header +) +{ + + return ( (Watchdog_Control *) _Chain_Last( header ) ); + +} + +/** @} */ + +#ifdef __cplusplus +} +#endif + +#endif +/* end of include file */ diff --git a/cpukit/score/inline/rtems/score/watchdog.inl b/cpukit/score/inline/rtems/score/watchdog.inl deleted file mode 100644 index cfee466df2..0000000000 --- a/cpukit/score/inline/rtems/score/watchdog.inl +++ /dev/null @@ -1,262 +0,0 @@ -/** - * @file - * - * @brief Inlined Routines in the Watchdog Handler - * - * This file contains the static inline implementation of all inlined - * routines in the Watchdog Handler. - */ - -/* - * COPYRIGHT (c) 1989-2004. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.com/license/LICENSE. - */ - -#ifndef _RTEMS_SCORE_WATCHDOG_H -# error "Never use <rtems/score/watchdog.inl> directly; include <rtems/score/watchdog.h> instead." -#endif - -#ifndef _RTEMS_SCORE_WATCHDOG_INL -#define _RTEMS_SCORE_WATCHDOG_INL - -/** - * @addtogroup ScoreWatchdog - * @{ - */ - -/** - * This routine initializes the specified watchdog. The watchdog is - * made inactive, the watchdog id and handler routine are set to the - * specified values. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Initialize( - Watchdog_Control *the_watchdog, - Watchdog_Service_routine_entry routine, - Objects_Id id, - void *user_data -) -{ - the_watchdog->state = WATCHDOG_INACTIVE; - the_watchdog->routine = routine; - the_watchdog->id = id; - the_watchdog->user_data = user_data; -} - -/** - * This routine returns true if the watchdog timer is in the ACTIVE - * state, and false otherwise. - */ - -RTEMS_INLINE_ROUTINE bool _Watchdog_Is_active( - Watchdog_Control *the_watchdog -) -{ - - return ( the_watchdog->state == WATCHDOG_ACTIVE ); - -} - -/** - * This routine activates THE_WATCHDOG timer which is already - * on a watchdog chain. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Activate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_ACTIVE; - -} - -/** - * This routine deactivates THE_WATCHDOG timer which will remain - * on a watchdog chain. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Deactivate( - Watchdog_Control *the_watchdog -) -{ - - the_watchdog->state = WATCHDOG_REMOVE_IT; - -} - -/** - * This routine is invoked at each clock tick to update the ticks - * watchdog chain. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_ticks( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Ticks_chain ); - -} - -/** - * This routine is invoked at each clock tick to update the seconds - * watchdog chain. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Tickle_seconds( void ) -{ - - _Watchdog_Tickle( &_Watchdog_Seconds_chain ); - -} - -/** - * This routine inserts THE_WATCHDOG into the ticks watchdog chain - * for a time of UNITS ticks. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Insert_ticks( - Watchdog_Control *the_watchdog, - Watchdog_Interval units -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); - -} - -/** - * This routine inserts THE_WATCHDOG into the seconds watchdog chain - * for a time of UNITS seconds. The INSERT_MODE indicates whether - * THE_WATCHDOG is to be activated automatically or later, explicitly - * by the caller. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Insert_seconds( - Watchdog_Control *the_watchdog, - Watchdog_Interval units -) -{ - - the_watchdog->initial = units; - - _Watchdog_Insert( &_Watchdog_Seconds_chain, the_watchdog ); - -} - -/** - * This routine adjusts the seconds watchdog chain in the forward - * or backward DIRECTION for UNITS seconds. This is invoked when the - * current time of day is changed. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_seconds( - Watchdog_Adjust_directions direction, - Watchdog_Interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Seconds_chain, direction, units ); - -} - -/** - * This routine adjusts the ticks watchdog chain in the forward - * or backward DIRECTION for UNITS ticks. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Adjust_ticks( - Watchdog_Adjust_directions direction, - Watchdog_Interval units -) -{ - - _Watchdog_Adjust( &_Watchdog_Ticks_chain, direction, units ); - -} - -/** - * This routine resets THE_WATCHDOG timer to its state at INSERT - * time. This routine is valid only on interval watchdog timers - * and is used to make an interval watchdog timer fire "every" so - * many ticks. - */ - -RTEMS_INLINE_ROUTINE void _Watchdog_Reset( - Watchdog_Control *the_watchdog -) -{ - - (void) _Watchdog_Remove( the_watchdog ); - - _Watchdog_Insert( &_Watchdog_Ticks_chain, the_watchdog ); - -} - -/** - * This routine returns a pointer to the watchdog timer following - * THE_WATCHDOG on the watchdog chain. - */ - -RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Next( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.next ); - -} - -/** - * This routine returns a pointer to the watchdog timer preceding - * THE_WATCHDOG on the watchdog chain. - */ - -RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Previous( - Watchdog_Control *the_watchdog -) -{ - - return ( (Watchdog_Control *) the_watchdog->Node.previous ); - -} - -/** - * This routine returns a pointer to the first watchdog timer - * on the watchdog chain HEADER. - */ - -RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_First( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) _Chain_First( header ) ); - -} - -/** - * This routine returns a pointer to the last watchdog timer - * on the watchdog chain HEADER. - */ - -RTEMS_INLINE_ROUTINE Watchdog_Control *_Watchdog_Last( - Chain_Control *header -) -{ - - return ( (Watchdog_Control *) _Chain_Last( header ) ); - -} - -/** @} */ - -#endif -/* end of include file */ diff --git a/cpukit/score/preinstall.am b/cpukit/score/preinstall.am index 4159f144c5..dc687dada8 100644 --- a/cpukit/score/preinstall.am +++ b/cpukit/score/preinstall.am @@ -231,6 +231,10 @@ $(PROJECT_INCLUDE)/rtems/score/watchdog.h: include/rtems/score/watchdog.h $(PROJ $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/watchdog.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/watchdog.h +$(PROJECT_INCLUDE)/rtems/score/watchdogimpl.h: include/rtems/score/watchdogimpl.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) + $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/watchdogimpl.h +PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/watchdogimpl.h + $(PROJECT_INCLUDE)/rtems/score/wkspace.h: include/rtems/score/wkspace.h $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/wkspace.h PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/wkspace.h @@ -355,10 +359,6 @@ $(PROJECT_INCLUDE)/rtems/score/tqdata.inl: inline/rtems/score/tqdata.inl $(PROJE $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/tqdata.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/tqdata.inl -$(PROJECT_INCLUDE)/rtems/score/watchdog.inl: inline/rtems/score/watchdog.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) - $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/watchdog.inl -PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/watchdog.inl - $(PROJECT_INCLUDE)/rtems/score/wkspace.inl: inline/rtems/score/wkspace.inl $(PROJECT_INCLUDE)/rtems/score/$(dirstamp) $(INSTALL_DATA) $< $(PROJECT_INCLUDE)/rtems/score/wkspace.inl PREINSTALL_FILES += $(PROJECT_INCLUDE)/rtems/score/wkspace.inl diff --git a/cpukit/score/src/corespinlockwait.c b/cpukit/score/src/corespinlockwait.c index 56baad1abf..689180a218 100644 --- a/cpukit/score/src/corespinlockwait.c +++ b/cpukit/score/src/corespinlockwait.c @@ -23,7 +23,6 @@ #include <rtems/score/states.h> #include <rtems/score/thread.h> #include <rtems/score/threaddispatch.h> -#include <rtems/score/watchdog.h> /* * _CORE_spinlock_Wait diff --git a/cpukit/score/src/coretodget.c b/cpukit/score/src/coretodget.c index dbee757f25..e58b9fee95 100644 --- a/cpukit/score/src/coretodget.c +++ b/cpukit/score/src/coretodget.c @@ -19,7 +19,7 @@ #endif #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> Timestamp_Control *_TOD_Get_with_nanoseconds( Timestamp_Control *snapshot, diff --git a/cpukit/score/src/coretodset.c b/cpukit/score/src/coretodset.c index b141e2819a..3bf5e52de5 100644 --- a/cpukit/score/src/coretodset.c +++ b/cpukit/score/src/coretodset.c @@ -24,7 +24,7 @@ #include <rtems/score/threaddispatch.h> #include <rtems/score/timestamp.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> void _TOD_Set_with_timestamp( const Timestamp_Control *tod diff --git a/cpukit/score/src/coretodtickle.c b/cpukit/score/src/coretodtickle.c index e464db3b52..4f53befe8d 100644 --- a/cpukit/score/src/coretodtickle.c +++ b/cpukit/score/src/coretodtickle.c @@ -23,7 +23,7 @@ #include <rtems/score/thread.h> #include <rtems/score/timestamp.h> #include <rtems/score/tod.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/config.h> void _TOD_Tickle_ticks( void ) diff --git a/cpukit/score/src/schedulercbsreleasejob.c b/cpukit/score/src/schedulercbsreleasejob.c index aec5ac8721..23453ed5c1 100644 --- a/cpukit/score/src/schedulercbsreleasejob.c +++ b/cpukit/score/src/schedulercbsreleasejob.c @@ -23,6 +23,7 @@ #include <rtems/config.h> #include <rtems/score/scheduler.h> #include <rtems/score/schedulercbs.h> +#include <rtems/score/watchdogimpl.h> void _Scheduler_CBS_Release_job( Thread_Control *the_thread, diff --git a/cpukit/score/src/schedulercbsunblock.c b/cpukit/score/src/schedulercbsunblock.c index 529d571dbf..5d7b2d0afe 100644 --- a/cpukit/score/src/schedulercbsunblock.c +++ b/cpukit/score/src/schedulercbsunblock.c @@ -22,6 +22,7 @@ #include <rtems/system.h> #include <rtems/score/scheduler.h> #include <rtems/score/schedulercbs.h> +#include <rtems/score/watchdogimpl.h> void _Scheduler_CBS_Unblock( Thread_Control *the_thread diff --git a/cpukit/score/src/scheduleredfprioritycompare.c b/cpukit/score/src/scheduleredfprioritycompare.c index 60e950dae7..546986254b 100644 --- a/cpukit/score/src/scheduleredfprioritycompare.c +++ b/cpukit/score/src/scheduleredfprioritycompare.c @@ -22,6 +22,7 @@ #include <rtems/system.h> #include <rtems/config.h> #include <rtems/score/scheduleredf.h> +#include <rtems/score/watchdogimpl.h> int _Scheduler_EDF_Priority_compare ( Priority_Control p1, diff --git a/cpukit/score/src/scheduleredfreleasejob.c b/cpukit/score/src/scheduleredfreleasejob.c index 83712ce162..c43e71f04d 100644 --- a/cpukit/score/src/scheduleredfreleasejob.c +++ b/cpukit/score/src/scheduleredfreleasejob.c @@ -22,6 +22,7 @@ #include <rtems/config.h> #include <rtems/score/scheduler.h> #include <rtems/score/scheduleredf.h> +#include <rtems/score/watchdogimpl.h> void _Scheduler_EDF_Release_job( Thread_Control *the_thread, diff --git a/cpukit/score/src/threadblockingoperationcancel.c b/cpukit/score/src/threadblockingoperationcancel.c index d67f995ab1..278dec51c8 100644 --- a/cpukit/score/src/threadblockingoperationcancel.c +++ b/cpukit/score/src/threadblockingoperationcancel.c @@ -23,6 +23,7 @@ #if defined(RTEMS_DEBUG) #include <rtems/score/interr.h> #endif +#include <rtems/score/watchdogimpl.h> void _Thread_blocking_operation_Cancel( #if defined(RTEMS_DEBUG) diff --git a/cpukit/score/src/threadclose.c b/cpukit/score/src/threadclose.c index 73fff78b73..e6fec8566f 100644 --- a/cpukit/score/src/threadclose.c +++ b/cpukit/score/src/threadclose.c @@ -32,6 +32,7 @@ #include <rtems/score/threaddispatch.h> #include <rtems/score/threadq.h> #include <rtems/score/userextimpl.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/score/wkspace.h> void _Thread_Close( diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/threadinitialize.c index cc74573def..64071e1199 100644 --- a/cpukit/score/src/threadinitialize.c +++ b/cpukit/score/src/threadinitialize.c @@ -31,7 +31,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/userextimpl.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/score/wkspace.h> bool _Thread_Initialize( diff --git a/cpukit/score/src/threadqdequeuefifo.c b/cpukit/score/src/threadqdequeuefifo.c index fcad820c2f..b00b58189f 100644 --- a/cpukit/score/src/threadqdequeuefifo.c +++ b/cpukit/score/src/threadqdequeuefifo.c @@ -26,6 +26,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/tqdata.h> +#include <rtems/score/watchdogimpl.h> Thread_Control *_Thread_queue_Dequeue_fifo( Thread_queue_Control *the_thread_queue diff --git a/cpukit/score/src/threadqdequeuepriority.c b/cpukit/score/src/threadqdequeuepriority.c index b9e7799ad4..0162488a9e 100644 --- a/cpukit/score/src/threadqdequeuepriority.c +++ b/cpukit/score/src/threadqdequeuepriority.c @@ -26,6 +26,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/tqdata.h> +#include <rtems/score/watchdogimpl.h> Thread_Control *_Thread_queue_Dequeue_priority( Thread_queue_Control *the_thread_queue diff --git a/cpukit/score/src/threadqenqueue.c b/cpukit/score/src/threadqenqueue.c index 0849bf2a11..41cfd74080 100644 --- a/cpukit/score/src/threadqenqueue.c +++ b/cpukit/score/src/threadqenqueue.c @@ -29,6 +29,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/tqdata.h> +#include <rtems/score/watchdogimpl.h> void _Thread_queue_Enqueue_with_handler( Thread_queue_Control *the_thread_queue, diff --git a/cpukit/score/src/threadqextractfifo.c b/cpukit/score/src/threadqextractfifo.c index 4dce010dc6..a0d52af2ff 100644 --- a/cpukit/score/src/threadqextractfifo.c +++ b/cpukit/score/src/threadqextractfifo.c @@ -27,6 +27,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/tqdata.h> +#include <rtems/score/watchdogimpl.h> void _Thread_queue_Extract_fifo( Thread_queue_Control *the_thread_queue __attribute__((unused)), diff --git a/cpukit/score/src/threadqextractpriority.c b/cpukit/score/src/threadqextractpriority.c index 082b0389f3..29a1c645a8 100644 --- a/cpukit/score/src/threadqextractpriority.c +++ b/cpukit/score/src/threadqextractpriority.c @@ -26,6 +26,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/tqdata.h> +#include <rtems/score/watchdogimpl.h> void _Thread_queue_Extract_priority_helper( Thread_queue_Control *the_thread_queue __attribute__((unused)), diff --git a/cpukit/score/src/threadreset.c b/cpukit/score/src/threadreset.c index 92cb636657..575cd272c8 100644 --- a/cpukit/score/src/threadreset.c +++ b/cpukit/score/src/threadreset.c @@ -30,6 +30,7 @@ #include <rtems/score/thread.h> #include <rtems/score/threadq.h> #include <rtems/score/wkspace.h> +#include <rtems/score/watchdogimpl.h> void _Thread_Reset( Thread_Control *the_thread, diff --git a/cpukit/score/src/watchdog.c b/cpukit/score/src/watchdog.c index 9e32b9c4c3..18064810f3 100644 --- a/cpukit/score/src/watchdog.c +++ b/cpukit/score/src/watchdog.c @@ -23,7 +23,7 @@ #include <rtems/system.h> #include <rtems/score/isr.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> void _Watchdog_Handler_initialization( void ) { diff --git a/cpukit/score/src/watchdogadjust.c b/cpukit/score/src/watchdogadjust.c index b0723d0f0f..32a0a83785 100644 --- a/cpukit/score/src/watchdogadjust.c +++ b/cpukit/score/src/watchdogadjust.c @@ -20,7 +20,7 @@ #include <rtems/system.h> #include <rtems/score/isr.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> void _Watchdog_Adjust( Chain_Control *header, diff --git a/cpukit/score/src/watchdogadjusttochain.c b/cpukit/score/src/watchdogadjusttochain.c index 902d9de380..ef32394388 100644 --- a/cpukit/score/src/watchdogadjusttochain.c +++ b/cpukit/score/src/watchdogadjusttochain.c @@ -20,7 +20,7 @@ #include <rtems/system.h> #include <rtems/score/isr.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> void _Watchdog_Adjust_to_chain( Chain_Control *header, diff --git a/cpukit/score/src/watchdoginsert.c b/cpukit/score/src/watchdoginsert.c index d73e2f061b..fd4e6f4f9a 100644 --- a/cpukit/score/src/watchdoginsert.c +++ b/cpukit/score/src/watchdoginsert.c @@ -20,7 +20,7 @@ #include <rtems/system.h> #include <rtems/score/isr.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> void _Watchdog_Insert( Chain_Control *header, diff --git a/cpukit/score/src/watchdognanoseconds.c b/cpukit/score/src/watchdognanoseconds.c index 41353bcc35..9c25239dff 100644 --- a/cpukit/score/src/watchdognanoseconds.c +++ b/cpukit/score/src/watchdognanoseconds.c @@ -24,7 +24,7 @@ #endif #include <rtems/system.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> Watchdog_Nanoseconds_since_last_tick_routine _Watchdog_Nanoseconds_since_tick_handler = diff --git a/cpukit/score/src/watchdogremove.c b/cpukit/score/src/watchdogremove.c index 319d726561..98bb05aca8 100644 --- a/cpukit/score/src/watchdogremove.c +++ b/cpukit/score/src/watchdogremove.c @@ -20,7 +20,7 @@ #include <rtems/system.h> #include <rtems/score/isr.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> Watchdog_States _Watchdog_Remove( Watchdog_Control *the_watchdog diff --git a/cpukit/score/src/watchdogreport.c b/cpukit/score/src/watchdogreport.c index e77c22aeb4..b357771bf4 100644 --- a/cpukit/score/src/watchdogreport.c +++ b/cpukit/score/src/watchdogreport.c @@ -19,7 +19,7 @@ #endif #include <rtems/system.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/bspIo.h> void _Watchdog_Report( diff --git a/cpukit/score/src/watchdogreportchain.c b/cpukit/score/src/watchdogreportchain.c index ea6c2f7415..b490f79b95 100644 --- a/cpukit/score/src/watchdogreportchain.c +++ b/cpukit/score/src/watchdogreportchain.c @@ -18,7 +18,7 @@ #endif #include <rtems/system.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> #include <rtems/score/isr.h> #include <rtems/bspIo.h> diff --git a/cpukit/score/src/watchdogtickle.c b/cpukit/score/src/watchdogtickle.c index ff779588ef..51742cb6b1 100644 --- a/cpukit/score/src/watchdogtickle.c +++ b/cpukit/score/src/watchdogtickle.c @@ -20,7 +20,7 @@ #include <rtems/system.h> #include <rtems/score/isr.h> -#include <rtems/score/watchdog.h> +#include <rtems/score/watchdogimpl.h> void _Watchdog_Tickle( Chain_Control *header |