From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44691) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUpRS-0007jp-Qq for qemu-devel@nongnu.org; Sun, 14 Feb 2016 00:41:55 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aUpRO-0003uV-RN for qemu-devel@nongnu.org; Sun, 14 Feb 2016 00:41:54 -0500 Received: from mx1.redhat.com ([209.132.183.28]:59005) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aUpRO-0003u9-M7 for qemu-devel@nongnu.org; Sun, 14 Feb 2016 00:41:50 -0500 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (Postfix) with ESMTPS id 125E78E36D for ; Sun, 14 Feb 2016 05:41:49 +0000 (UTC) From: Peter Xu Date: Sun, 14 Feb 2016 13:41:41 +0800 Message-Id: <1455428503-2113-1-git-send-email-peterx@redhat.com> Subject: [Qemu-devel] [RFC PATCH 0/2] ARM: add QMP command to query GIC version List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, libvir-list@redhat.com Cc: wei@redhat.com, drjones@redhat.com, abologna@redhat.com, peterx@redhat.com For ARM platform, we still do not have any interface to query whether current QEMU/host support specific GIC version. This patchset is trying to add one QMP interface for that. By querying the GIC capability using the new interface, one should know exactly what GIC version(s) the platform will support. The capability bits will be decided by both QEMU and host kernel. The current patchset only provides interface for review. Its handler is a fake one which returns empty always. The command interface I am planning to add is something like this: -> { "execute": "query-gic-capability" } <- { "return": [ "gicv2", "gicv2-kvm", "gicv3-kvm" ] } Currently, all the possible supported GIC versions are: - gicv2: GIC version 2 without kernel IRQ chip - gicv2-kvm: GIC version 2 with kernel IRQ chip - gicv3: GIC version 3 without kernel IRQ chip (not supported) - gicv3-kvm: GIC version 3 with kernel IRQ chip Since "gicv3" is still not supported (to use GICv3, kernel irqchip support is required for now, which corresponds to "gicv3-kvm"), currently the maximum superset of the result should be: ["gicv2", "gicv2-kvm", "gicv3-kvm"] Please help review whether the interface suits our need, also please point out any error I have made. One question: how should I make this command "ARM only"? I see that in qmp-commands.hx, I can use something like "#if defined TARGET_ARM" to block out ARM specified commands, however how should I do the similiar thing in qapi-schema.json? Thanks! Peter Peter Xu (2): arm: gic: add GICType arm: gic: add "query-gic-capability" interface qapi-schema.json | 28 ++++++++++++++++++++++++++++ qmp-commands.hx | 25 +++++++++++++++++++++++++ qmp.c | 5 +++++ scripts/qapi.py | 1 + 4 files changed, 59 insertions(+) -- 2.4.3