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