linux/drivers/watchdog/watchdog_pretimeout.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2#ifndef __WATCHDOG_PRETIMEOUT_H
   3#define __WATCHDOG_PRETIMEOUT_H
   4
   5#define WATCHDOG_GOV_NAME_MAXLEN        20
   6
   7struct watchdog_device;
   8
   9struct watchdog_governor {
  10        const char      name[WATCHDOG_GOV_NAME_MAXLEN];
  11        void            (*pretimeout)(struct watchdog_device *wdd);
  12};
  13
  14#if IS_ENABLED(CONFIG_WATCHDOG_PRETIMEOUT_GOV)
  15/* Interfaces to watchdog pretimeout governors */
  16int watchdog_register_governor(struct watchdog_governor *gov);
  17void watchdog_unregister_governor(struct watchdog_governor *gov);
  18
  19/* Interfaces to watchdog_dev.c */
  20int watchdog_register_pretimeout(struct watchdog_device *wdd);
  21void watchdog_unregister_pretimeout(struct watchdog_device *wdd);
  22int watchdog_pretimeout_available_governors_get(char *buf);
  23int watchdog_pretimeout_governor_get(struct watchdog_device *wdd, char *buf);
  24int watchdog_pretimeout_governor_set(struct watchdog_device *wdd,
  25                                     const char *buf);
  26
  27#if IS_ENABLED(CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP)
  28#define WATCHDOG_PRETIMEOUT_DEFAULT_GOV         "noop"
  29#elif IS_ENABLED(CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_PANIC)
  30#define WATCHDOG_PRETIMEOUT_DEFAULT_GOV         "panic"
  31#endif
  32
  33#else
  34static inline int watchdog_register_pretimeout(struct watchdog_device *wdd)
  35{
  36        return 0;
  37}
  38
  39static inline void watchdog_unregister_pretimeout(struct watchdog_device *wdd)
  40{
  41}
  42
  43static inline int watchdog_pretimeout_available_governors_get(char *buf)
  44{
  45        return -EINVAL;
  46}
  47
  48static inline int watchdog_pretimeout_governor_get(struct watchdog_device *wdd,
  49                                                   char *buf)
  50{
  51        return -EINVAL;
  52}
  53
  54static inline int watchdog_pretimeout_governor_set(struct watchdog_device *wdd,
  55                                                   const char *buf)
  56{
  57        return -EINVAL;
  58}
  59#endif
  60
  61#endif
  62