qmp: add and use q type specifier

"O" is being used by the transaction and qom-set commands to mean "any
QObject", but it really means "do not validate the argument list".
Add a new specifier with the correct meaning.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
This commit is contained in:
Paolo Bonzini 2012-03-22 12:51:11 +01:00 committed by Luiz Capitulino
parent e38ac9621c
commit b9f8978cc4
2 changed files with 5 additions and 2 deletions

View File

@ -4157,6 +4157,9 @@ static int check_client_args_type(const QDict *client_args,
case 'O':
assert(flags & QMP_ACCEPT_UNKNOWNS);
break;
case 'q':
/* Any QObject can be passed. */
break;
case '/':
case '.':
/*

View File

@ -708,7 +708,7 @@ EQMP
},
{
.name = "transaction",
.args_type = "actions:O",
.args_type = "actions:q",
.mhandler.cmd_new = qmp_marshal_input_transaction,
},
@ -2125,7 +2125,7 @@ EQMP
{
.name = "qom-set",
.args_type = "path:s,property:s,opts:O",
.args_type = "path:s,property:s,value:q",
.mhandler.cmd_new = qmp_qom_set,
},