diff --git a/cpukit/score/include/rtems/score/watchdogimpl.h b/cpukit/score/include/rtems/score/watchdogimpl.h index 7253dc40e4..f6ad05cd8a 100644 --- a/cpukit/score/include/rtems/score/watchdogimpl.h +++ b/cpukit/score/include/rtems/score/watchdogimpl.h @@ -25,6 +25,7 @@ #include #include +#include #include #ifdef __cplusplus @@ -323,6 +324,17 @@ RTEMS_INLINE_ROUTINE uint64_t _Watchdog_Ticks_from_timespec( return ticks; } +RTEMS_INLINE_ROUTINE uint64_t _Watchdog_Ticks_from_sbintime( + sbintime_t sbt +) +{ + uint64_t ticks = ( sbt >> 32 ) << WATCHDOG_BITS_FOR_1E9_NANOSECONDS; + + ticks |= ( (uint64_t) 1000000000 * (uint32_t) sbt ) >> 32; + + return ticks; +} + RTEMS_INLINE_ROUTINE void _Watchdog_Per_CPU_acquire_critical( Per_CPU_Control *cpu, ISR_lock_Context *lock_context