xref: /dflybsd-src/share/man/man9/wdog.9 (revision adb0ed0ff9e74222c87002711a9aecd4d26408d7)
1*c7978c25SSascha Wildner.\"
2*c7978c25SSascha Wildner.\" Copyright (c) 2012
3*c7978c25SSascha Wildner.\"	The DragonFly Project.  All rights reserved.
4*c7978c25SSascha Wildner.\"
5*c7978c25SSascha Wildner.\" Redistribution and use in source and binary forms, with or without
6*c7978c25SSascha Wildner.\" modification, are permitted provided that the following conditions
7*c7978c25SSascha Wildner.\" are met:
8*c7978c25SSascha Wildner.\"
9*c7978c25SSascha Wildner.\" 1. Redistributions of source code must retain the above copyright
10*c7978c25SSascha Wildner.\"    notice, this list of conditions and the following disclaimer.
11*c7978c25SSascha Wildner.\" 2. Redistributions in binary form must reproduce the above copyright
12*c7978c25SSascha Wildner.\"    notice, this list of conditions and the following disclaimer in
13*c7978c25SSascha Wildner.\"    the documentation and/or other materials provided with the
14*c7978c25SSascha Wildner.\"    distribution.
15*c7978c25SSascha Wildner.\" 3. Neither the name of The DragonFly Project nor the names of its
16*c7978c25SSascha Wildner.\"    contributors may be used to endorse or promote products derived
17*c7978c25SSascha Wildner.\"    from this software without specific, prior written permission.
18*c7978c25SSascha Wildner.\"
19*c7978c25SSascha Wildner.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20*c7978c25SSascha Wildner.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21*c7978c25SSascha Wildner.\" LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
22*c7978c25SSascha Wildner.\" FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE
23*c7978c25SSascha Wildner.\" COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
24*c7978c25SSascha Wildner.\" INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING,
25*c7978c25SSascha Wildner.\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26*c7978c25SSascha Wildner.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
27*c7978c25SSascha Wildner.\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
28*c7978c25SSascha Wildner.\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
29*c7978c25SSascha Wildner.\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30*c7978c25SSascha Wildner.\" SUCH DAMAGE.
31*c7978c25SSascha Wildner.\"
32*c7978c25SSascha Wildner.Dd May 6, 2012
33*c7978c25SSascha Wildner.Dt WDOG 9
34*c7978c25SSascha Wildner.Os
35*c7978c25SSascha Wildner.Sh NAME
36*c7978c25SSascha Wildner.Nm wdog_register ,
37*c7978c25SSascha Wildner.Nm wdog_unregister
38*c7978c25SSascha Wildner.Nd watchdog facility
39*c7978c25SSascha Wildner.Sh SYNOPSIS
40*c7978c25SSascha Wildner.In sys/wdog.h
41*c7978c25SSascha Wildner.Bd -literal
42*c7978c25SSascha Wildnertypedef int (wdog_fn)(void *, int);
43*c7978c25SSascha Wildner.Ed
44*c7978c25SSascha Wildner.Ft void
45*c7978c25SSascha Wildner.Fn wdog_register "struct watchdog *wd"
46*c7978c25SSascha Wildner.Ft void
47*c7978c25SSascha Wildner.Fn wdog_unregister "struct watchdog *wd"
48*c7978c25SSascha Wildner.Sh DESCRIPTION
49*c7978c25SSascha WildnerThe
50*c7978c25SSascha Wildner.Fn wdog_register
51*c7978c25SSascha Wildnerand
52*c7978c25SSascha Wildner.Fn wdog_unregister
53*c7978c25SSascha Wildnerfunctions do just what their names indicate.
54*c7978c25SSascha Wildner.Pp
55*c7978c25SSascha WildnerThe watchdog driver, such as
56*c7978c25SSascha Wildner.Xr ichwd 4 ,
57*c7978c25SSascha Wildnerinitializes a
58*c7978c25SSascha Wildner.Vt struct watchdog
59*c7978c25SSascha Wildner(see
60*c7978c25SSascha Wildner.In sys/wdog.h
61*c7978c25SSascha Wildnerfor details) and passes a pointer to it to
62*c7978c25SSascha Wildner.Fn wdog_register .
63*c7978c25SSascha WildnerThe
64*c7978c25SSascha Wildner.Nm wdog
65*c7978c25SSascha Wildnerframework will then periodically call the function pointed to by the struct's
66*c7978c25SSascha Wildner.Fa wdog_fn
67*c7978c25SSascha Wildnermember and passes two arguments: a generic pointer specified in
68*c7978c25SSascha Wildner.Vt struct watchdog Ap s
69*c7978c25SSascha Wildner.Fa arg
70*c7978c25SSascha Wildnermember and an integer which is the desired period.
71*c7978c25SSascha WildnerIn the function, the driver must tickle the watchdog hardware and return
72*c7978c25SSascha Wildnerthe period, which it can adjust if hardware specifics require that.
73*c7978c25SSascha Wildner.Pp
74*c7978c25SSascha WildnerRegistered watchdogs should be unregistered with
75*c7978c25SSascha Wildner.Fn wdog_unregister
76*c7978c25SSascha Wildnerupon driver detachment.
77*c7978c25SSascha Wildner.\".Sh SEE ALSO
78*c7978c25SSascha Wildner.\".Xr wdog 4
79*c7978c25SSascha Wildner.Sh HISTORY
80*c7978c25SSascha WildnerThe
81*c7978c25SSascha Wildner.Nm wdog
82*c7978c25SSascha Wildnerframework appeared in
83*c7978c25SSascha Wildner.Dx 2.5 .
84*c7978c25SSascha Wildner.Sh AUTHORS
85*c7978c25SSascha Wildner.An Alex Hornung
86