On 09/05/2017 01:50 PM, Markus Armbruster wrote: > Michal Privoznik <mpriv...@redhat.com> writes: > >> Currently, the only time that users can set watchdog action is at >> the start as all we expose is this -watchdog-action command line >> argument. This is suboptimal when users want to plug the device >> later via monitor. Alternatively, they might want to change the >> action for already existing device on the fly. >> >> Inspired by: https://bugzilla.redhat.com/show_bug.cgi?id=1447169 >> >> Signed-off-by: Michal Privoznik <mpriv...@redhat.com> >> --- >> hw/watchdog/watchdog.c | 9 +++++++++ >> qapi-schema.json | 9 +++++++++ >> 2 files changed, 18 insertions(+) >> >> diff --git a/hw/watchdog/watchdog.c b/hw/watchdog/watchdog.c >> index 0c5c9cde1c..971f05c61a 100644 >> --- a/hw/watchdog/watchdog.c >> +++ b/hw/watchdog/watchdog.c >> @@ -29,6 +29,8 @@ >> #include "qapi-event.h" >> #include "hw/nmi.h" >> #include "qemu/help_option.h" >> +#include "qmp-commands.h" >> +#include "qapi/qmp/qerror.h" >> >> static int watchdog_action = WDT_RESET; >> static QLIST_HEAD(watchdog_list, WatchdogTimerModel) watchdog_list; >> @@ -147,3 +149,10 @@ void watchdog_perform_action(void) >> break; >> } >> } >> + >> +void qmp_watchdog_set_action(const char *action, Error **errp) >> +{ >> + if (select_watchdog_action(action) == -1) { >> + error_setg(errp, QERR_INVALID_PARAMETER, action); >> + } >> +} >> diff --git a/qapi-schema.json b/qapi-schema.json >> index 802ea53d00..be81ffc0bb 100644 >> --- a/qapi-schema.json >> +++ b/qapi-schema.json >> @@ -6539,3 +6539,12 @@ >> # Since 2.9 >> ## >> { 'command': 'query-vm-generation-id', 'returns': 'GuidInfo' } >> + >> +## >> +# @watchdog-set-action: >> +# >> +# Set watchdog action >> +# >> +# Since 2.11 >> +## >> +{ 'command': 'watchdog-set-action', 'data' : {'action': 'str'} } > > @action needs to be a QAPI enum. It'll replace the #defines in > watchdog. select_watchdog_action() then calls qapi_enum_parse() to map > string to enum, and qmp_watchdog_set_action() to make the actual change.
Oh, okay. Sure, I can do that. I guess it makes the set of actions introspectable? Michal