From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:41791) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVmep-0002n0-0F for qemu-devel@nongnu.org; Wed, 11 Mar 2015 15:51:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YVmej-0004zG-9e for qemu-devel@nongnu.org; Wed, 11 Mar 2015 15:51:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59396) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YVmej-0004z5-2k for qemu-devel@nongnu.org; Wed, 11 Mar 2015 15:51:01 -0400 Date: Wed, 11 Mar 2015 20:50:54 +0100 From: "Michael S. Tsirkin" Message-ID: <20150311205054-mutt-send-email-mst@redhat.com> References: <1426096767-30494-1-git-send-email-mst@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1426096767-30494-1-git-send-email-mst@redhat.com> Subject: [Qemu-devel] [PULL 07/25] machine: allowed/required kernel-irqchip support List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Maydell , Eduardo Habkost , Alexander Graf , Marcel Apfelbaum , Paolo Bonzini , =?us-ascii?B?PT9VVEYtOD9xP0FuZHJlYXM9MjBGPUMzPUE0cmJlcj89?= From: Marcel Apfelbaum The code using kernel-irqchip property requires 'allowed/required' functionality. Replace machine's kernel_irqchip field with two fields representing the new functionality and expose them through wrappers. Signed-off-by: Marcel Apfelbaum Acked-by: Michael S. Tsirkin Signed-off-by: Michael S. Tsirkin Reviewed-by: Paolo Bonzini Reviewed-by: Paolo Bonzini --- include/hw/boards.h | 5 ++++- hw/core/machine.c | 24 +++++++++++++++--------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/include/hw/boards.h b/include/hw/boards.h index a12f041..69ab606 100644 --- a/include/hw/boards.h +++ b/include/hw/boards.h @@ -67,6 +67,8 @@ extern MachineState *current_machine; bool machine_usb(MachineState *machine); bool machine_iommu(MachineState *machine); +bool machine_kernel_irqchip_allowed(MachineState *machine); +bool machine_kernel_irqchip_required(MachineState *machine); /** * MachineClass: @@ -125,7 +127,8 @@ struct MachineState { /*< public >*/ char *accel; - bool kernel_irqchip; + bool kernel_irqchip_allowed; + bool kernel_irqchip_required; int kvm_shadow_mem; char *dtb; char *dumpdtb; diff --git a/hw/core/machine.c b/hw/core/machine.c index 096eb10..e04e5ab 100644 --- a/hw/core/machine.c +++ b/hw/core/machine.c @@ -31,18 +31,12 @@ static void machine_set_accel(Object *obj, const char *value, Error **errp) ms->accel = g_strdup(value); } -static bool machine_get_kernel_irqchip(Object *obj, Error **errp) -{ - MachineState *ms = MACHINE(obj); - - return ms->kernel_irqchip; -} - static void machine_set_kernel_irqchip(Object *obj, bool value, Error **errp) { MachineState *ms = MACHINE(obj); - ms->kernel_irqchip = value; + ms->kernel_irqchip_allowed = value; + ms->kernel_irqchip_required = value; } static void machine_get_kvm_shadow_mem(Object *obj, Visitor *v, @@ -289,13 +283,15 @@ static void machine_initfn(Object *obj) { MachineState *ms = MACHINE(obj); + ms->kernel_irqchip_allowed = true; + object_property_add_str(obj, "accel", machine_get_accel, machine_set_accel, NULL); object_property_set_description(obj, "accel", "Accelerator list", NULL); object_property_add_bool(obj, "kernel-irqchip", - machine_get_kernel_irqchip, + NULL, machine_set_kernel_irqchip, NULL); object_property_set_description(obj, "kernel-irqchip", @@ -408,6 +404,16 @@ bool machine_iommu(MachineState *machine) return machine->iommu; } +bool machine_kernel_irqchip_allowed(MachineState *machine) +{ + return machine->kernel_irqchip_allowed; +} + +bool machine_kernel_irqchip_required(MachineState *machine) +{ + return machine->kernel_irqchip_required; +} + static const TypeInfo machine_info = { .name = TYPE_MACHINE, .parent = TYPE_OBJECT, -- MST