From 5e7b6272fc10068c22bfedb18a26a23a37e9a7ff Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 31 May 1996 23:27:45 +0000 Subject: renamed _TOD_Ticks_since_boot as _Watchdog_Ticks_since_boot so the Watchdog Handler could timestamp the starting and stopping of timers. Since TOD is built on top of Watchdog, this avoided a circular dependency. --- c/src/exec/posix/src/sched.c | 1 + c/src/exec/posix/src/time.c | 2 +- c/src/exec/posix/src/unistd.c | 2 +- c/src/exec/rtems/src/clock.c | 2 +- c/src/exec/rtems/src/rtclock.c | 2 +- c/src/exec/score/headers/tod.h | 7 ------- c/src/exec/score/headers/watchdog.h | 9 +++++++++ c/src/exec/score/include/rtems/score/tod.h | 7 ------- c/src/exec/score/include/rtems/score/watchdog.h | 9 +++++++++ c/src/exec/score/inline/rtems/score/tod.inl | 2 +- c/src/exec/score/inline/tod.inl | 2 +- c/src/exec/score/macros/rtems/score/tod.inl | 2 +- c/src/exec/score/macros/tod.inl | 2 +- c/src/exec/score/src/coretod.c | 1 - c/src/exec/score/src/tod.c | 1 - c/src/exec/score/src/watchdog.c | 6 ++++++ c/src/tests/sptests/spsize/size.c | 2 +- 17 files changed, 34 insertions(+), 25 deletions(-) (limited to 'c') diff --git a/c/src/exec/posix/src/sched.c b/c/src/exec/posix/src/sched.c index 9da0e43091..1a9a9fe38b 100644 --- a/c/src/exec/posix/src/sched.c +++ b/c/src/exec/posix/src/sched.c @@ -2,6 +2,7 @@ * $Id$ */ +#include #include #include diff --git a/c/src/exec/posix/src/time.c b/c/src/exec/posix/src/time.c index f9e5ce835f..945a550296 100644 --- a/c/src/exec/posix/src/time.c +++ b/c/src/exec/posix/src/time.c @@ -174,7 +174,7 @@ int clock_gettime( #ifdef _POSIX_CPUTIME case CLOCK_PROCESS_CPUTIME: - /* could base this on _TOD_Ticks_since_boot -- must make set work though*/ + /* could base this on _Watchdog_Ticks_since_boot -- must make set work though*/ return POSIX_NOT_IMPLEMENTED(); break; #endif diff --git a/c/src/exec/posix/src/unistd.c b/c/src/exec/posix/src/unistd.c index 44d08e592b..5ef66ada7f 100644 --- a/c/src/exec/posix/src/unistd.c +++ b/c/src/exec/posix/src/unistd.c @@ -25,7 +25,7 @@ unsigned int sleep( nanosleep( &tp, &tm ); - return tm->tv_sec; /* seconds remaining */ + return tm.tv_sec; /* seconds remaining */ } /* * 4.8.1 Get Configurable System Variables, P1003.1b-1993, p. 95 diff --git a/c/src/exec/rtems/src/clock.c b/c/src/exec/rtems/src/clock.c index ea340ae5f4..f73401809c 100644 --- a/c/src/exec/rtems/src/clock.c +++ b/c/src/exec/rtems/src/clock.c @@ -62,7 +62,7 @@ rtems_status_code rtems_clock_get( return RTEMS_SUCCESSFUL; case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: - *(rtems_interval *)time_buffer = _TOD_Ticks_since_boot; + *(rtems_interval *)time_buffer = _Watchdog_Ticks_since_boot; return RTEMS_SUCCESSFUL; case RTEMS_CLOCK_GET_TICKS_PER_SECOND: diff --git a/c/src/exec/rtems/src/rtclock.c b/c/src/exec/rtems/src/rtclock.c index ea340ae5f4..f73401809c 100644 --- a/c/src/exec/rtems/src/rtclock.c +++ b/c/src/exec/rtems/src/rtclock.c @@ -62,7 +62,7 @@ rtems_status_code rtems_clock_get( return RTEMS_SUCCESSFUL; case RTEMS_CLOCK_GET_TICKS_SINCE_BOOT: - *(rtems_interval *)time_buffer = _TOD_Ticks_since_boot; + *(rtems_interval *)time_buffer = _Watchdog_Ticks_since_boot; return RTEMS_SUCCESSFUL; case RTEMS_CLOCK_GET_TICKS_PER_SECOND: diff --git a/c/src/exec/score/headers/tod.h b/c/src/exec/score/headers/tod.h index a1fc6ee446..3788a74256 100644 --- a/c/src/exec/score/headers/tod.h +++ b/c/src/exec/score/headers/tod.h @@ -80,13 +80,6 @@ SCORE_EXTERN TOD_Control _TOD_Current; SCORE_EXTERN Watchdog_Interval _TOD_Seconds_since_epoch; -/* - * The following contains the number of ticks since the - * system was booted. - */ - -SCORE_EXTERN Watchdog_Interval _TOD_Ticks_since_boot; - /* * The following contains the number of microseconds per tick. */ diff --git a/c/src/exec/score/headers/watchdog.h b/c/src/exec/score/headers/watchdog.h index 8a43be1f1f..c77d9f1307 100644 --- a/c/src/exec/score/headers/watchdog.h +++ b/c/src/exec/score/headers/watchdog.h @@ -82,6 +82,8 @@ typedef struct { Watchdog_States state; Watchdog_Interval initial; Watchdog_Interval delta_interval; + Watchdog_Interval start_time; + Watchdog_Interval stop_time; Watchdog_Service_routine_entry routine; Objects_Id id; void *user_data; @@ -95,6 +97,13 @@ typedef struct { SCORE_EXTERN volatile unsigned32 _Watchdog_Sync_level; SCORE_EXTERN volatile unsigned32 _Watchdog_Sync_count; +/* + * The following contains the number of ticks since the + * system was booted. + */ + +SCORE_EXTERN Watchdog_Interval _Watchdog_Ticks_since_boot; + /* * The following defines the watchdog chains which are managed * on ticks and second boundaries. diff --git a/c/src/exec/score/include/rtems/score/tod.h b/c/src/exec/score/include/rtems/score/tod.h index a1fc6ee446..3788a74256 100644 --- a/c/src/exec/score/include/rtems/score/tod.h +++ b/c/src/exec/score/include/rtems/score/tod.h @@ -80,13 +80,6 @@ SCORE_EXTERN TOD_Control _TOD_Current; SCORE_EXTERN Watchdog_Interval _TOD_Seconds_since_epoch; -/* - * The following contains the number of ticks since the - * system was booted. - */ - -SCORE_EXTERN Watchdog_Interval _TOD_Ticks_since_boot; - /* * The following contains the number of microseconds per tick. */ diff --git a/c/src/exec/score/include/rtems/score/watchdog.h b/c/src/exec/score/include/rtems/score/watchdog.h index 8a43be1f1f..c77d9f1307 100644 --- a/c/src/exec/score/include/rtems/score/watchdog.h +++ b/c/src/exec/score/include/rtems/score/watchdog.h @@ -82,6 +82,8 @@ typedef struct { Watchdog_States state; Watchdog_Interval initial; Watchdog_Interval delta_interval; + Watchdog_Interval start_time; + Watchdog_Interval stop_time; Watchdog_Service_routine_entry routine; Objects_Id id; void *user_data; @@ -95,6 +97,13 @@ typedef struct { SCORE_EXTERN volatile unsigned32 _Watchdog_Sync_level; SCORE_EXTERN volatile unsigned32 _Watchdog_Sync_count; +/* + * The following contains the number of ticks since the + * system was booted. + */ + +SCORE_EXTERN Watchdog_Interval _Watchdog_Ticks_since_boot; + /* * The following defines the watchdog chains which are managed * on ticks and second boundaries. diff --git a/c/src/exec/score/inline/rtems/score/tod.inl b/c/src/exec/score/inline/rtems/score/tod.inl index 5ed1e76d8f..3892dbdb98 100644 --- a/c/src/exec/score/inline/rtems/score/tod.inl +++ b/c/src/exec/score/inline/rtems/score/tod.inl @@ -45,7 +45,7 @@ STATIC INLINE boolean _TOD_Is_set( void ) STATIC INLINE void _TOD_Tickle_ticks( void ) { _TOD_Current.ticks += 1; - _TOD_Ticks_since_boot += 1; + _Watchdog_Ticks_since_boot += 1; } /*PAGE diff --git a/c/src/exec/score/inline/tod.inl b/c/src/exec/score/inline/tod.inl index 5ed1e76d8f..3892dbdb98 100644 --- a/c/src/exec/score/inline/tod.inl +++ b/c/src/exec/score/inline/tod.inl @@ -45,7 +45,7 @@ STATIC INLINE boolean _TOD_Is_set( void ) STATIC INLINE void _TOD_Tickle_ticks( void ) { _TOD_Current.ticks += 1; - _TOD_Ticks_since_boot += 1; + _Watchdog_Ticks_since_boot += 1; } /*PAGE diff --git a/c/src/exec/score/macros/rtems/score/tod.inl b/c/src/exec/score/macros/rtems/score/tod.inl index ecab4e6eae..63c50bc515 100644 --- a/c/src/exec/score/macros/rtems/score/tod.inl +++ b/c/src/exec/score/macros/rtems/score/tod.inl @@ -34,7 +34,7 @@ #define _TOD_Tickle_ticks() \ _TOD_Current.ticks++; \ - _TOD_Ticks_since_boot++ + _Watchdog_Ticks_since_boot++ /*PAGE * diff --git a/c/src/exec/score/macros/tod.inl b/c/src/exec/score/macros/tod.inl index ecab4e6eae..63c50bc515 100644 --- a/c/src/exec/score/macros/tod.inl +++ b/c/src/exec/score/macros/tod.inl @@ -34,7 +34,7 @@ #define _TOD_Tickle_ticks() \ _TOD_Current.ticks++; \ - _TOD_Ticks_since_boot++ + _Watchdog_Ticks_since_boot++ /*PAGE * diff --git a/c/src/exec/score/src/coretod.c b/c/src/exec/score/src/coretod.c index 1a11034ceb..8c7fb93d79 100644 --- a/c/src/exec/score/src/coretod.c +++ b/c/src/exec/score/src/coretod.c @@ -37,7 +37,6 @@ void _TOD_Handler_initialization( { _TOD_Microseconds_per_tick = microseconds_per_tick; - _TOD_Ticks_since_boot = 0; _TOD_Seconds_since_epoch = 0; _TOD_Current.year = TOD_BASE_YEAR; diff --git a/c/src/exec/score/src/tod.c b/c/src/exec/score/src/tod.c index 1a11034ceb..8c7fb93d79 100644 --- a/c/src/exec/score/src/tod.c +++ b/c/src/exec/score/src/tod.c @@ -37,7 +37,6 @@ void _TOD_Handler_initialization( { _TOD_Microseconds_per_tick = microseconds_per_tick; - _TOD_Ticks_since_boot = 0; _TOD_Seconds_since_epoch = 0; _TOD_Current.year = TOD_BASE_YEAR; diff --git a/c/src/exec/score/src/watchdog.c b/c/src/exec/score/src/watchdog.c index 0f72bd3d5c..2ada0ff71e 100644 --- a/c/src/exec/score/src/watchdog.c +++ b/c/src/exec/score/src/watchdog.c @@ -32,6 +32,8 @@ void _Watchdog_Handler_initialization( void ) { _Watchdog_Sync_count = 0; _Watchdog_Sync_level = 0; + _Watchdog_Ticks_since_boot = 0; + _Chain_Initialize_empty( &_Watchdog_Ticks_chain ); _Chain_Initialize_empty( &_Watchdog_Seconds_chain ); } @@ -82,6 +84,8 @@ Watchdog_States _Watchdog_Remove( _Chain_Extract_unprotected( &the_watchdog->Node ); break; } + the_watchdog->stop_time = _Watchdog_Ticks_since_boot; + _ISR_Enable( level ); return( previous_state ); } @@ -200,6 +204,8 @@ restart: _Chain_Insert_unprotected( after->Node.previous, &the_watchdog->Node ); + the_watchdog->start_time = _Watchdog_Ticks_since_boot; + exit_insert: _Watchdog_Sync_level = insert_isr_nest_level; _Watchdog_Sync_count--; diff --git a/c/src/tests/sptests/spsize/size.c b/c/src/tests/sptests/spsize/size.c index 9b1035e5ce..907cbb7927 100644 --- a/c/src/tests/sptests/spsize/size.c +++ b/c/src/tests/sptests/spsize/size.c @@ -329,7 +329,6 @@ uninitialized = /*tod.h*/ (sizeof _TOD_Current) + (sizeof _TOD_Seconds_since_epoch) + - (sizeof _TOD_Ticks_since_boot) + (sizeof _TOD_Microseconds_per_tick) + (sizeof _TOD_Ticks_per_second) + (sizeof _TOD_Seconds_watchdog) + @@ -343,6 +342,7 @@ uninitialized = /*watchdog.h*/ (sizeof _Watchdog_Sync_level) + (sizeof _Watchdog_Sync_count) + + (sizeof _Watchdog_Ticks_since_boot) + (sizeof _Watchdog_Ticks_chain) + (sizeof _Watchdog_Seconds_chain) + -- cgit v1.2.3