xref: /qemu/include/sysemu/watchdog.h (revision 9af23989)
10d09e41aSPaolo Bonzini /*
20d09e41aSPaolo Bonzini  * Virtual hardware watchdog.
30d09e41aSPaolo Bonzini  *
40d09e41aSPaolo Bonzini  * Copyright (C) 2009 Red Hat Inc.
50d09e41aSPaolo Bonzini  *
60d09e41aSPaolo Bonzini  * This program is free software; you can redistribute it and/or
70d09e41aSPaolo Bonzini  * modify it under the terms of the GNU General Public License
80d09e41aSPaolo Bonzini  * as published by the Free Software Foundation; either version 2
90d09e41aSPaolo Bonzini  * of the License, or (at your option) any later version.
100d09e41aSPaolo Bonzini  *
110d09e41aSPaolo Bonzini  * This program is distributed in the hope that it will be useful,
120d09e41aSPaolo Bonzini  * but WITHOUT ANY WARRANTY; without even the implied warranty of
130d09e41aSPaolo Bonzini  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
140d09e41aSPaolo Bonzini  * GNU General Public License for more details.
150d09e41aSPaolo Bonzini  *
160d09e41aSPaolo Bonzini  * You should have received a copy of the GNU General Public License
170d09e41aSPaolo Bonzini  * along with this program; if not, see <http://www.gnu.org/licenses/>.
180d09e41aSPaolo Bonzini  *
190d09e41aSPaolo Bonzini  * By Richard W.M. Jones (rjones@redhat.com).
200d09e41aSPaolo Bonzini  */
210d09e41aSPaolo Bonzini 
220d09e41aSPaolo Bonzini #ifndef QEMU_WATCHDOG_H
230d09e41aSPaolo Bonzini #define QEMU_WATCHDOG_H
240d09e41aSPaolo Bonzini 
250d09e41aSPaolo Bonzini #include "qemu/queue.h"
26*9af23989SMarkus Armbruster #include "qapi/qapi-types-run-state.h"
270d035b6cSBo Tu 
280d09e41aSPaolo Bonzini struct WatchdogTimerModel {
290d09e41aSPaolo Bonzini     QLIST_ENTRY(WatchdogTimerModel) entry;
300d09e41aSPaolo Bonzini 
310d09e41aSPaolo Bonzini     /* Short name of the device - used to select it on the command line. */
320d09e41aSPaolo Bonzini     const char *wdt_name;
330d09e41aSPaolo Bonzini     /* Longer description (eg. manufacturer and full model number). */
340d09e41aSPaolo Bonzini     const char *wdt_description;
350d09e41aSPaolo Bonzini };
360d09e41aSPaolo Bonzini typedef struct WatchdogTimerModel WatchdogTimerModel;
370d09e41aSPaolo Bonzini 
380d09e41aSPaolo Bonzini /* in hw/watchdog.c */
390d09e41aSPaolo Bonzini int select_watchdog(const char *p);
400d09e41aSPaolo Bonzini int select_watchdog_action(const char *action);
414c7f4426SMichal Privoznik WatchdogAction get_watchdog_action(void);
420d09e41aSPaolo Bonzini void watchdog_add_model(WatchdogTimerModel *model);
430d09e41aSPaolo Bonzini void watchdog_perform_action(void);
440d09e41aSPaolo Bonzini 
450d09e41aSPaolo Bonzini #endif /* QEMU_WATCHDOG_H */
46