From patchwork Thu Nov 12 01:17:41 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Eric Blake X-Patchwork-Id: 543169 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id F1DDD1402BF for ; Thu, 12 Nov 2015 12:19:39 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; secure) header.d=comcast.net header.i=@comcast.net header.b=Hfbyp3QA; dkim-atps=neutral Received: from localhost ([::1]:43887 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwgY5-0004Ap-TN for incoming@patchwork.ozlabs.org; Wed, 11 Nov 2015 20:19:37 -0500 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwgWW-0001lC-Qf for qemu-devel@nongnu.org; Wed, 11 Nov 2015 20:18:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZwgWP-0003NP-Kz for qemu-devel@nongnu.org; Wed, 11 Nov 2015 20:18:00 -0500 Received: from resqmta-po-01v.sys.comcast.net ([96.114.154.160]:59548) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZwgWP-0003NA-Fq for qemu-devel@nongnu.org; Wed, 11 Nov 2015 20:17:53 -0500 Received: from resomta-po-06v.sys.comcast.net ([96.114.154.230]) by resqmta-po-01v.sys.comcast.net with comcast id gRHe1r0074yXVJQ01RHsmk; Thu, 12 Nov 2015 01:17:52 +0000 Received: from red.redhat.com ([24.10.254.122]) by resomta-po-06v.sys.comcast.net with comcast id gRHi1r00F2fD5rL01RHsLG; Thu, 12 Nov 2015 01:17:52 +0000 From: Eric Blake To: qemu-devel@nongnu.org Date: Wed, 11 Nov 2015 18:17:41 -0700 Message-Id: <1447291062-11011-4-git-send-email-eblake@redhat.com> X-Mailer: git-send-email 2.4.3 In-Reply-To: <1447291062-11011-1-git-send-email-eblake@redhat.com> References: <1447291062-11011-1-git-send-email-eblake@redhat.com> MIME-Version: 1.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1447291072; bh=sJgSpJjLb97ItJq+rFo1r/C2nN4fsL7Nupi6FDPEl+A=; h=Received:Received:From:To:Subject:Date:Message-Id:MIME-Version: Content-Type; b=Hfbyp3QAw1cOLO864neHQnDQfIFTNnCCVVy9ov84ozIKMTmwFeiP1PBTEUjrSJxJ+ 1gCottKzdVTCp5ksGUvUhVjtN7YCWkR5Qxyjd/BRwp9/aaRkvydZbNm8z5SKv3eElk Bup/dmnDr7PFYLu3mV111zk+KsYShHgD5EpMZVUYYrKv9SWHPWD5UcfLpNwLopWIht 4K3FP3SAX0Q5PYALfUV/Sw2R40VsUMRyQHHjhvr8WIHnbJneUkyTxzCN5WBOTEwH7T 4AhvmgS7vD7Qt7Kr4MpeDsDQkCe/bYiC7vr4FcctmuYAkhxOdXuT/R308FTPDjPCD8 2PqKVgRr9rhRw== X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 96.114.154.160 Cc: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , armbru@redhat.com, Luiz Capitulino Subject: [Qemu-devel] [PATCH for-2.5 3/4] monitor: use qapi for qmp_capabilities command X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org From: Marc-André Lureau This was initially done to add qmp_capabilities documentation to the schema. Then I figured it would also help to get rid of the "middle mode" monitor dispatch code. Signed-off-by: Marc-André Lureau Message-Id: <1443189844-20341-5-git-send-email-marcandre.lureau@redhat.com> [Add empty 'Capabilities' to make it obvious that we don't have any yet.] Signed-off-by: Eric Blake --- monitor.c | 4 ++-- qapi-schema.json | 28 ++++++++++++++++++++++++++++ qmp-commands.hx | 2 +- 3 files changed, 31 insertions(+), 3 deletions(-) diff --git a/monitor.c b/monitor.c index 3295840..608c70f 100644 --- a/monitor.c +++ b/monitor.c @@ -599,7 +599,7 @@ static void monitor_qapi_event_init(void) qmp_event_set_func_emit(monitor_qapi_event_queue); } -static void qmp_capabilities(QDict *params, QObject **ret_data, Error **errp) +void qmp_qmp_capabilities(Error **errp) { cur_mon->qmp.in_command_mode = true; } @@ -3575,7 +3575,7 @@ static int monitor_can_read(void *opaque) static bool invalid_qmp_mode(const Monitor *mon, const mon_cmd_t *cmd, Error **errp) { - bool is_cap = cmd->mhandler.cmd_new == qmp_capabilities; + bool is_cap = cmd->mhandler.cmd_new == qmp_marshal_qmp_capabilities; if (is_cap && mon->qmp.in_command_mode) { error_set(errp, ERROR_CLASS_COMMAND_NOT_FOUND, diff --git a/qapi-schema.json b/qapi-schema.json index f99d413..ce2dd45 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -21,6 +21,34 @@ { 'include': 'qapi/introspect.json' } ## +# @Capabilities +# +# The set of recognized QMP capabilities; currently empty. +# +# Since 2.5 +## +{ 'struct': 'Capabilities', 'data': {} } + +## +# @qmp_capabilities: +# +# Enable QMP capabilities. +# +# Arguments: None. +# +# Example: +# +# -> { "execute": "qmp_capabilities" } +# <- { "return": {} } +# +# Notes: This command must be issued before issuing any other command. +# +# Since 0.14 +# +## +{ 'command': 'qmp_capabilities', 'data': 'Capabilities' } + +## # @LostTickPolicy: # # Policy for handling lost ticks in timer devices. diff --git a/qmp-commands.hx b/qmp-commands.hx index cde7505..672fcfc 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -2090,7 +2090,7 @@ EQMP .args_type = "", .params = "", .help = "enable QMP capabilities", - .mhandler.cmd_new = qmp_capabilities, + .mhandler.cmd_new = qmp_marshal_qmp_capabilities, }, SQMP