score: _Watchdog_Is_far_future_monotonic_timespec

Update #3117.
Update #3182.
This commit is contained in:
Sebastian Huber
2017-10-20 08:43:15 +02:00
parent d16d07fbb8
commit 7ed377bc69
4 changed files with 20 additions and 0 deletions

View File

@@ -3110,6 +3110,9 @@ extern rtems_initialization_tasks_table Initialization_tasks[];
const uint32_t _Watchdog_Ticks_per_second = _CONFIGURE_TICKS_PER_SECOND;
const uint64_t _Watchdog_Monotonic_max_seconds =
UINT64_MAX / _CONFIGURE_TICKS_PER_SECOND;
/**
* This is the Classic API Configuration Table.
*/

View File

@@ -166,6 +166,15 @@ extern volatile Watchdog_Interval _Watchdog_Ticks_since_boot;
*/
extern const uint32_t _Watchdog_Ticks_per_second;
/**
* @brief The maximum number of seconds representable in the monotonic watchdog
* format.
*
* This constant is defined by the application configuration via
* <rtems/confdefs.h>.
*/
extern const uint64_t _Watchdog_Monotonic_max_seconds;
/**@}*/
#ifdef __cplusplus

View File

@@ -319,6 +319,13 @@ RTEMS_INLINE_ROUTINE bool _Watchdog_Is_valid_interval_timespec(
return _Watchdog_Is_valid_timespec( ts ) && ts->tv_sec >= 0;
}
RTEMS_INLINE_ROUTINE bool _Watchdog_Is_far_future_monotonic_timespec(
const struct timespec *ts
)
{
return ts->tv_sec >= _Watchdog_Monotonic_max_seconds;
}
RTEMS_INLINE_ROUTINE bool _Watchdog_Is_far_future_realtime_timespec(
const struct timespec *ts
)

View File

@@ -60,6 +60,7 @@ static void test_watchdog_static_init( void )
static void test_watchdog_config( void )
{
rtems_test_assert( _Watchdog_Ticks_per_second == 100 );
rtems_test_assert( _Watchdog_Monotonic_max_seconds == 184467440737095516 );
}
static bool test_watchdog_is_inactive( test_watchdog *watchdog )