To implement a watchdog in software or hardware, only a single
function needs to be written and registered on the global
watchdog_list
The function must examine the
Fa cmd
argument and act on it as
follows:
If
Fa cmd
is zero, the watchdog must be disabled and the
Fa error
argument left untouched.
If the watchdog cannot be disabled, the
Fa error
argument must be set to
EOPNOTSUPP
Else the watchdog should be reset and configured to a timeout of
(1 << (Fa cmd & WD_INTERVAL
)
)
nanoseconds or larger and the
Fa error
argument be set to zero to signal arming of a watchdog.
If the watchdog cannot be configured to the proposed timeout, it
must be disabled and the
Fa error
argument left as is (to avoid hiding the arming of another watchdog).
There is no specification of what the watchdog should do when it
times out, but a hardware reset or similar
``drastic but certain''
behaviour is recommended.