]>
Commit | Line | Data |
---|---|---|
ff84136c VZ |
1 | #ifndef __WATCHDOG_PRETIMEOUT_H |
2 | #define __WATCHDOG_PRETIMEOUT_H | |
3 | ||
4 | #define WATCHDOG_GOV_NAME_MAXLEN 20 | |
5 | ||
6 | struct watchdog_device; | |
7 | ||
8 | struct watchdog_governor { | |
9 | const char name[WATCHDOG_GOV_NAME_MAXLEN]; | |
10 | void (*pretimeout)(struct watchdog_device *wdd); | |
11 | }; | |
12 | ||
13 | #if IS_ENABLED(CONFIG_WATCHDOG_PRETIMEOUT_GOV) | |
14 | /* Interfaces to watchdog pretimeout governors */ | |
15 | int watchdog_register_governor(struct watchdog_governor *gov); | |
16 | void watchdog_unregister_governor(struct watchdog_governor *gov); | |
17 | ||
18 | /* Interfaces to watchdog_dev.c */ | |
19 | int watchdog_register_pretimeout(struct watchdog_device *wdd); | |
20 | void watchdog_unregister_pretimeout(struct watchdog_device *wdd); | |
21 | int watchdog_pretimeout_governor_get(struct watchdog_device *wdd, char *buf); | |
22 | ||
f77710c4 VZ |
23 | #if IS_ENABLED(CONFIG_WATCHDOG_PRETIMEOUT_DEFAULT_GOV_NOOP) |
24 | #define WATCHDOG_PRETIMEOUT_DEFAULT_GOV "noop" | |
25 | #endif | |
26 | ||
ff84136c VZ |
27 | #else |
28 | static inline int watchdog_register_pretimeout(struct watchdog_device *wdd) | |
29 | { | |
30 | return 0; | |
31 | } | |
32 | ||
33 | static inline void watchdog_unregister_pretimeout(struct watchdog_device *wdd) | |
34 | { | |
35 | } | |
36 | ||
37 | static inline int watchdog_pretimeout_governor_get(struct watchdog_device *wdd, | |
38 | char *buf) | |
39 | { | |
40 | return -EINVAL; | |
41 | } | |
42 | #endif | |
43 | ||
44 | #endif |