• Home
  • Raw
  • Download

Lines Matching full:watchdog

11  *	by all the watchdog timer drivers.
14 * misc device: /dev/watchdog.
47 #include <linux/watchdog.h> /* For watchdog specific items */
56 * struct watchdog_core_data - watchdog core internal data
57 * @dev: The watchdog's internal device
58 * @cdev: The watchdog's Character device.
59 * @wdd: Pointer to watchdog device.
60 * @lock: Lock for watchdog core.
61 * @status: Watchdog core internal status bits.
78 /* the dev_t structure to store the dynamically allocated watchdog devices */
80 /* Reference to watchdog device behind /dev/watchdog */
97 * - Userspace activated the watchdog. in watchdog_need_worker()
103 * Alternatively, if userspace has not opened the watchdog in watchdog_need_worker()
104 * device, we take care of feeding the watchdog if it is in watchdog_need_worker()
129 * To ensure that the watchdog times out wdd->timeout seconds in watchdog_next_keepalive()
174 err = wdd->ops->ping(wdd); /* ping the watchdog */ in __watchdog_ping()
176 err = wdd->ops->start(wdd); /* restart watchdog */ in __watchdog_ping()
184 * watchdog_ping: ping the watchdog.
185 * @wdd: the watchdog device to ping
189 * If the watchdog has no own ping operation then it needs to be
192 * We only ping when the watchdog device is running.
238 * watchdog_start: wrapper to start the watchdog.
239 * @wdd: the watchdog device to start
243 * Start the watchdog if it is not active and mark it active.
275 * watchdog_stop: wrapper to stop the watchdog.
276 * @wdd: the watchdog device to stop
280 * Stop the watchdog if it is still active and unmark it active.
283 * If the 'nowayout' feature was set, the watchdog cannot be stopped.
294 pr_info("watchdog%d: nowayout prevents watchdog being stopped!\n", in watchdog_stop()
315 * watchdog_get_status: wrapper to get the watchdog status
316 * @wdd: the watchdog device to get the status from
320 * Get the watchdog's status flags.
349 * watchdog_set_timeout: set the watchdog timer timeout
350 * @wdd: the watchdog device to set the timeout for
382 * watchdog_set_pretimeout: set the watchdog timer pretimeout
383 * @wdd: the watchdog device to set the timeout for
408 * @wdd: the watchdog device to get the remaining time from
413 * Get the time before a watchdog will reboot (if not pinged).
594 * watchdog_ioctl_op: call the watchdog drivers ioctl op if defined
595 * @wdd: the watchdog device to do the ioctl on
596 * @cmd: watchdog command
612 * watchdog_write: writes to the watchdog.
618 * A write to a watchdog device is defined as a keepalive ping.
620 * off the watchdog (if 'nowayout' is not set).
649 /* someone wrote to us, so we send the watchdog a keepalive ping */ in watchdog_write()
665 * watchdog_ioctl: handle the different ioctl's for the watchdog device.
667 * @cmd: watchdog command
670 * The watchdog API defines a common set of functions for all watchdogs
736 /* If the watchdog is active then we send a keepalive ping in watchdog_ioctl()
737 * to make sure that the watchdog keep's running (and if in watchdog_ioctl()
778 * watchdog_open: open the /dev/watchdog* devices.
782 * When the /dev/watchdog* device gets opened, we start the watchdog.
783 * Watch out: the /dev/watchdog device is single open, so we make sure
794 /* Get the corresponding watchdog device */ in watchdog_open()
801 /* the watchdog is single open! */ in watchdog_open()
808 * If the /dev/watchdog device is open, we don't want the module in watchdog_open()
826 /* dev/watchdog is a virtual (and thus non-seekable) filesystem */ in watchdog_open()
846 * watchdog_release: release the watchdog device.
850 * This is the code for when /dev/watchdog gets closed. We will only
851 * stop the watchdog when we have received the magic char (and nowayout
852 * was not set), else the watchdog will keep running.
869 * We only stop the watchdog if we received the magic character in watchdog_release()
879 /* If the watchdog was not stopped, send a keepalive ping */ in watchdog_release()
881 pr_crit("watchdog%d: watchdog did not stop!\n", wdd->id); in watchdog_release()
887 /* make sure that /dev/watchdog can be re-opened */ in watchdog_release()
894 * Allow the owner module to be unloaded again unless the watchdog in watchdog_release()
895 * is still running. If the watchdog is still running, it can not in watchdog_release()
915 .name = "watchdog",
920 .name = "watchdog",
926 * watchdog_cdev_register: register watchdog character device
927 * @wdd: watchdog device
929 * Register a watchdog character device including handling the legacy
930 * /dev/watchdog node. /dev/watchdog is actually a miscdevice and
959 dev_set_name(&wd_data->dev, "watchdog%d", wdd->id); in watchdog_cdev_register()
973 pr_err("%s: a legacy watchdog module is probably present.\n", in watchdog_cdev_register()
987 pr_err("watchdog%d unable to add device %d:%d\n", in watchdog_cdev_register()
1003 * If the watchdog is running, prevent its driver from being unloaded, in watchdog_cdev_register()
1012 pr_info("watchdog%d running and kernel based pre-userspace handler disabled\n", in watchdog_cdev_register()
1020 * watchdog_cdev_unregister: unregister watchdog character device
1021 * @watchdog: watchdog device
1023 * Unregister watchdog character device and if needed the legacy
1024 * /dev/watchdog device.
1054 * watchdog_dev_register: register a watchdog device
1055 * @wdd: watchdog device
1057 * Register a watchdog device including handling the legacy
1058 * /dev/watchdog node. /dev/watchdog is actually a miscdevice and
1078 * watchdog_dev_unregister: unregister a watchdog device
1079 * @watchdog: watchdog device
1081 * Unregister watchdog device and if needed the legacy
1082 * /dev/watchdog device.
1092 * watchdog_dev_init: init dev part of watchdog core
1094 * Allocate a range of chardev nodes to use for watchdog devices
1104 pr_err("Failed to create watchdog kworker\n"); in watchdog_dev_init()
1115 err = alloc_chrdev_region(&watchdog_devt, 0, MAX_DOGS, "watchdog"); in watchdog_dev_init()
1117 pr_err("watchdog: unable to allocate char dev region\n"); in watchdog_dev_init()
1131 * watchdog_dev_exit: exit dev part of watchdog core
1133 * Release the range of chardev nodes used for watchdog devices
1145 "Watchdog core auto-updates boot enabled watchdogs before userspace takes over (default="