From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:45135) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YsuL1-0000pw-SE for qemu-devel@nongnu.org; Thu, 14 May 2015 10:42:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YsuKy-0004Rk-Kz for qemu-devel@nongnu.org; Thu, 14 May 2015 10:42:15 -0400 Received: from smtp02.citrix.com ([66.165.176.63]:34231) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YsuKy-0004QC-H1 for qemu-devel@nongnu.org; Thu, 14 May 2015 10:42:12 -0400 From: Stefano Stabellini Date: Thu, 14 May 2015 15:41:38 +0100 Message-ID: <1431614498-32007-1-git-send-email-stefano.stabellini@eu.citrix.com> MIME-Version: 1.0 Content-Type: text/plain Subject: [Qemu-devel] [PATCH] Add a property to disable the floppy controller List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com, xen-devel@lists.xensource.com, mst@redhat.com, stefano.stabellini@eu.citrix.com Do not change default settings for any machines at the moment: this patch does not introduce any changes in behavior unless the user asks for no-fdc=on. Signed-off-by: Stefano Stabellini --- hw/i386/pc.c | 27 ++++++++++++++++++++++++--- include/hw/i386/pc.h | 2 ++ vl.c | 4 ++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f31d55e..501609b 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1450,10 +1450,14 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi, cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1); DMA_init(0, cpu_exit_irq); - for(i = 0; i < MAX_FD; i++) { - fd[i] = drive_get(IF_FLOPPY, 0, i); + *floppy = NULL; + if (!object_property_get_bool(qdev_get_machine(), + PC_MACHINE_NO_FDC, &error_abort)) { + for (i = 0; i < MAX_FD; i++) { + fd[i] = drive_get(IF_FLOPPY, 0, i); + } + *floppy = fdctrl_init_isa(isa_bus, fd); } - *floppy = fdctrl_init_isa(isa_bus, fd); } void pc_nic_init(ISABus *isa_bus, PCIBus *pci_bus) @@ -1797,6 +1801,20 @@ static bool pc_machine_get_aligned_dimm(Object *obj, Error **errp) return pcms->enforce_aligned_dimm; } +static bool pc_machine_get_no_fdc(Object *obj, Error **errp) +{ + PCMachineState *pcms = PC_MACHINE(obj); + + return pcms->no_fdc; +} + +static void pc_machine_set_no_fdc(Object *obj, bool value, Error **errp) +{ + PCMachineState *pcms = PC_MACHINE(obj); + + pcms->no_fdc = value; +} + static void pc_machine_initfn(Object *obj) { PCMachineState *pcms = PC_MACHINE(obj); @@ -1820,6 +1838,9 @@ static void pc_machine_initfn(Object *obj) object_property_add_bool(obj, PC_MACHINE_ENFORCE_ALIGNED_DIMM, pc_machine_get_aligned_dimm, NULL, NULL); + object_property_add_bool(obj, PC_MACHINE_NO_FDC, + pc_machine_get_no_fdc, pc_machine_set_no_fdc, + NULL); } static void pc_machine_class_init(ObjectClass *oc, void *data) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 69d9cf8..93b2442 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -41,6 +41,7 @@ struct PCMachineState { uint64_t max_ram_below_4g; OnOffAuto vmport; bool enforce_aligned_dimm; + bool no_fdc; }; #define PC_MACHINE_ACPI_DEVICE_PROP "acpi-device" @@ -48,6 +49,7 @@ struct PCMachineState { #define PC_MACHINE_MAX_RAM_BELOW_4G "max-ram-below-4g" #define PC_MACHINE_VMPORT "vmport" #define PC_MACHINE_ENFORCE_ALIGNED_DIMM "enforce-aligned-dimm" +#define PC_MACHINE_NO_FDC "no-fdc" /** * PCMachineClass: diff --git a/vl.c b/vl.c index 91411c1..81d80ae 100644 --- a/vl.c +++ b/vl.c @@ -387,6 +387,10 @@ static QemuOptsList qemu_machine_opts = { .name = "iommu", .type = QEMU_OPT_BOOL, .help = "Set on/off to enable/disable Intel IOMMU (VT-d)", + },{ + .name = PC_MACHINE_NO_FDC, + .type = QEMU_OPT_BOOL, + .help = "do not emulate a floppy controller", }, { /* End of list */ } }, -- 1.7.10.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH] Add a property to disable the floppy controller Date: Thu, 14 May 2015 15:41:38 +0100 Message-ID: <1431614498-32007-1-git-send-email-stefano.stabellini@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org To: qemu-devel@nongnu.org Cc: pbonzini@redhat.com, xen-devel@lists.xensource.com, mst@redhat.com, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Do not change default settings for any machines at the moment: this patch does not introduce any changes in behavior unless the user asks for no-fdc=on. Signed-off-by: Stefano Stabellini --- hw/i386/pc.c | 27 ++++++++++++++++++++++++--- include/hw/i386/pc.h | 2 ++ vl.c | 4 ++++ 3 files changed, 30 insertions(+), 3 deletions(-) diff --git a/hw/i386/pc.c b/hw/i386/pc.c index f31d55e..501609b 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1450,10 +1450,14 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi, cpu_exit_irq = qemu_allocate_irqs(cpu_request_exit, NULL, 1); DMA_init(0, cpu_exit_irq); - for(i = 0; i < MAX_FD; i++) { - fd[i] = drive_get(IF_FLOPPY, 0, i); + *floppy = NULL; + if (!object_property_get_bool(qdev_get_machine(), + PC_MACHINE_NO_FDC, &error_abort)) { + for (i = 0; i < MAX_FD; i++) { + fd[i] = drive_get(IF_FLOPPY, 0, i); + } + *floppy = fdctrl_init_isa(isa_bus, fd); } - *floppy = fdctrl_init_isa(isa_bus, fd); } void pc_nic_init(ISABus *isa_bus, PCIBus *pci_bus) @@ -1797,6 +1801,20 @@ static bool pc_machine_get_aligned_dimm(Object *obj, Error **errp) return pcms->enforce_aligned_dimm; } +static bool pc_machine_get_no_fdc(Object *obj, Error **errp) +{ + PCMachineState *pcms = PC_MACHINE(obj); + + return pcms->no_fdc; +} + +static void pc_machine_set_no_fdc(Object *obj, bool value, Error **errp) +{ + PCMachineState *pcms = PC_MACHINE(obj); + + pcms->no_fdc = value; +} + static void pc_machine_initfn(Object *obj) { PCMachineState *pcms = PC_MACHINE(obj); @@ -1820,6 +1838,9 @@ static void pc_machine_initfn(Object *obj) object_property_add_bool(obj, PC_MACHINE_ENFORCE_ALIGNED_DIMM, pc_machine_get_aligned_dimm, NULL, NULL); + object_property_add_bool(obj, PC_MACHINE_NO_FDC, + pc_machine_get_no_fdc, pc_machine_set_no_fdc, + NULL); } static void pc_machine_class_init(ObjectClass *oc, void *data) diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h index 69d9cf8..93b2442 100644 --- a/include/hw/i386/pc.h +++ b/include/hw/i386/pc.h @@ -41,6 +41,7 @@ struct PCMachineState { uint64_t max_ram_below_4g; OnOffAuto vmport; bool enforce_aligned_dimm; + bool no_fdc; }; #define PC_MACHINE_ACPI_DEVICE_PROP "acpi-device" @@ -48,6 +49,7 @@ struct PCMachineState { #define PC_MACHINE_MAX_RAM_BELOW_4G "max-ram-below-4g" #define PC_MACHINE_VMPORT "vmport" #define PC_MACHINE_ENFORCE_ALIGNED_DIMM "enforce-aligned-dimm" +#define PC_MACHINE_NO_FDC "no-fdc" /** * PCMachineClass: diff --git a/vl.c b/vl.c index 91411c1..81d80ae 100644 --- a/vl.c +++ b/vl.c @@ -387,6 +387,10 @@ static QemuOptsList qemu_machine_opts = { .name = "iommu", .type = QEMU_OPT_BOOL, .help = "Set on/off to enable/disable Intel IOMMU (VT-d)", + },{ + .name = PC_MACHINE_NO_FDC, + .type = QEMU_OPT_BOOL, + .help = "do not emulate a floppy controller", }, { /* End of list */ } }, -- 1.7.10.4