[PATCH 1/7] watchdog: add keep alive support
Sascha Hauer
s.hauer at pengutronix.de
Mon Nov 19 04:38:44 EST 2012
On Fri, Nov 16, 2012 at 06:55:39PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> this will allow to ping the watchdog via poller
>
> /*
> * Note: this simple framework supports one watchdog only.
> */
> static struct watchdog *watchdog;
>
> +static void watchdog_poller_func(struct poller_struct *poller)
> +{
> + watchdog->keep_alive(watchdog);
> +}
> +
> +static struct poller_struct watchdog_poller = {
> + .func = watchdog_poller_func,
> +};
> +
> int watchdog_register(struct watchdog *wd)
> {
> if (watchdog != NULL)
> return -EBUSY;
>
> watchdog = wd;
> +
> + if (watchdog->keep_alive) {
> + int ret;
> +
> + ret = poller_register(&watchdog_poller);
> + if (ret) {
> + watchdog = NULL;
> + return ret;
> + }
> + }
Currently the watchdog is supposed to be kept alive with periodically
calling the watchdog (or wd) command. A user may decide to just
periodically ping the watchdog from C code, but this should be a users
decision (i.e. some enhancement to the wd command) and should be
available for i.MX aswell.
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list