cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

watchdog_pretimeout.h (1684B)


      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