Provided by: freebsd-manpages_9.2+1-1_all bug

NAME

       watchdog — hardware and software watchdog

SYNOPSIS

       #include <sys/watchdog.h>

DESCRIPTION

       The watchdog facility is used for controlling hardware and software watchdogs.

       The  device  /dev/fido responds to a single ioctl(2) call, WDIOCPATPAT.  It takes a single argument which
       represents a timeout value specified as a power of two nanoseconds, or-ed with a flag selecting active or
       passive control of the watchdog.

       WD_ACTIVE indicates that the watchdog will be kept from timing out from userland,  for  instance  by  the
       watchdogd(8)  daemon.   WD_PASSIVE  indicates  that  the  watchdog  will be kept from timing out from the
       kernel.

       The ioctl(2) call will return success if just one of the available watchdog(9)  implementations  supports
       setting  the  timeout  to the specified timeout.  This means that at least one watchdog is armed.  If the
       call fails, for instance if none of watchdog(9) implementations support the timeout length, all watchdogs
       are disabled and must be explicitly re-enabled.

       To disable the watchdogs pass WD_TO_NEVER.  If disarming the watchdog(s) failed  an  error  is  returned.
       The watchdog might still be armed!

RETURN VALUES

       The ioctl returns zero on success and non-zero on failure.

       [EOPNOTSUPP]       No  watchdog  present  in  the  kernel or none of the watchdogs supports the requested
                          timeout value (timeout value other than 0).

       [EOPNOTSUPP]       Watchdog could not be disabled (timeout value of 0).

       [EINVAL]           Invalid flag combination passed.

EXAMPLES

             #include <paths.h>
             #include <sys/watchdog.h>

             #define WDPATH  "/dev/" _PATH_WATCHDOG
             int wdfd = -1;

             static void
             wd_init(void)
             {
                     wdfd = open(WDPATH, O_RDWR);
                     if (wdfd == -1)
                             err(1, WDPATH);
             }
             static void
             wd_reset(u_int timeout)
             {
                     if (ioctl(wdfd, WDIOCPATPAT, &timeout) == -1)
                             err(1, "WDIOCPATPAT");
             }

             /* in main() */
             wd_init();
             wd_reset(WD_ACTIVE|WD_TO_8SEC);
             /* potential freeze point */
             wd_reset(WD_TO_NEVER);

       Enables a watchdog to recover from a potentially freezing piece of code.

             options SW_WATCHDOG

       in your kernel config adds a software watchdog in the kernel, dropping to KDB or panic-ing when firing.

SEE ALSO

       watchdogd(8), watchdog(9)

HISTORY

       The watchdog code first appeared in FreeBSD 5.1.

AUTHORS

       The watchdog facility was written by Poul-Henning Kamp <phk@FreeBSD.org>.  The software watchdog code and
       this manual page were written by Sean Kelly <smkelly@FreeBSD.org>.  Some contributions were made by  Jeff
       Roberson <jeff@FreeBSD.org>.

BUGS

       The WD_PASSIVE option has not yet been implemented.

Debian                                          December 21, 2009                                    WATCHDOG(4)