diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-12-21 14:36:52 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2018-02-02 15:01:20 +0100 |
commit | 9480815a222be61214b176836ef2b4ae4155ce84 (patch) | |
tree | 63c96f9a0fb79ead01e6b73d12baaa5ac8cb8378 /cpukit/score/src/watchdogtick.c | |
parent | score: Rename _Watchdog_Realtime_from_*() (diff) | |
download | rtems-9480815a222be61214b176836ef2b4ae4155ce84.tar.bz2 |
score: Introduce new monotonic clock
Rename PER_CPU_WATCHDOG_MONOTONIC to PER_CPU_WATCHDOG_TICKS. Add new
PER_CPU_WATCHDOG_MONOTONIC which is based on the system uptime (measured
by timecounter).
Close #3264.
Diffstat (limited to 'cpukit/score/src/watchdogtick.c')
-rw-r--r-- | cpukit/score/src/watchdogtick.c | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/cpukit/score/src/watchdogtick.c b/cpukit/score/src/watchdogtick.c index e9160f2ea1..2f11357019 100644 --- a/cpukit/score/src/watchdogtick.c +++ b/cpukit/score/src/watchdogtick.c @@ -70,7 +70,7 @@ void _Watchdog_Tick( Per_CPU_Control *cpu ) ++ticks; cpu->Watchdog.ticks = ticks; - header = &cpu->Watchdog.Header[ PER_CPU_WATCHDOG_MONOTONIC ]; + header = &cpu->Watchdog.Header[ PER_CPU_WATCHDOG_TICKS ]; first = _Watchdog_Header_first( header ); if ( first != NULL ) { @@ -83,6 +83,20 @@ void _Watchdog_Tick( Per_CPU_Control *cpu ) ); } + header = &cpu->Watchdog.Header[ PER_CPU_WATCHDOG_MONOTONIC ]; + first = _Watchdog_Header_first( header ); + + if ( first != NULL ) { + _Timecounter_Getnanouptime( &now ); + _Watchdog_Tickle( + header, + first, + _Watchdog_Ticks_from_timespec( &now ), + &cpu->Watchdog.Lock, + &lock_context + ); + } + header = &cpu->Watchdog.Header[ PER_CPU_WATCHDOG_REALTIME ]; first = _Watchdog_Header_first( header ); |