mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-27 12:23:53 -06:00
qapi: add support for command options
Options allow for changes in commands behavior. This commit introduces the QCO_NO_SUCCESS_RESP option, which causes a command to not emit a success response. This is needed by commands such as qemu-ga's guest-shutdown, which may not be able to complete before the VM vanishes. In this case, it's useful and simpler not to bother sending a success response. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
76ee152a86
commit
d34b867d81
4 changed files with 30 additions and 6 deletions
|
@ -291,14 +291,24 @@ out:
|
|||
|
||||
return ret
|
||||
|
||||
def option_value_matches(opt, val, cmd):
|
||||
if opt in cmd and cmd[opt] == val:
|
||||
return True
|
||||
return False
|
||||
|
||||
def gen_registry(commands):
|
||||
registry=""
|
||||
push_indent()
|
||||
for cmd in commands:
|
||||
options = 'QCO_NO_OPTIONS'
|
||||
if option_value_matches('success-response', 'no', cmd):
|
||||
options = 'QCO_NO_SUCCESS_RESP'
|
||||
|
||||
registry += mcgen('''
|
||||
qmp_register_command("%(name)s", qmp_marshal_input_%(c_name)s);
|
||||
qmp_register_command("%(name)s", qmp_marshal_input_%(c_name)s, %(opts)s);
|
||||
''',
|
||||
name=cmd['command'], c_name=c_fun(cmd['command']))
|
||||
name=cmd['command'], c_name=c_fun(cmd['command']),
|
||||
opts=options)
|
||||
pop_indent()
|
||||
ret = mcgen('''
|
||||
static void qmp_init_marshal(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue