brintos

brintos / linux-shallow public Read only

0
0
Text · 1.6 KiB · a3f1abc Raw
62 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef __WATCHDOG_PRETIMEOUT_H3#define __WATCHDOG_PRETIMEOUT_H4 5#define WATCHDOG_GOV_NAME_MAXLEN	206 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#endif32 33#else34static 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#endif60 61#endif62