From 07dc788054d714a07df08e2eacc8c2e1c47b9a58 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Wed, 4 Feb 2015 18:33:07 +0100 Subject: parallel: Factor out common parallel_hds_isa_init() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Maintainers of affected machines cc'ed. Cc: Anthony Liguori Cc: "Michael S. Tsirkin" Cc: Aurelien Jarno Cc: Leon Alrae Cc: Blue Swirl Signed-off-by: Markus Armbruster Signed-off-by: Andreas Färber --- hw/char/parallel.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'hw/char/parallel.c') diff --git a/hw/char/parallel.c b/hw/char/parallel.c index c2b553f0d1..710cefcd94 100644 --- a/hw/char/parallel.c +++ b/hw/char/parallel.c @@ -641,3 +641,34 @@ static void parallel_register_types(void) } type_init(parallel_register_types) + +static bool parallel_init(ISABus *bus, int index, CharDriverState *chr) +{ + DeviceState *dev; + ISADevice *isadev; + + isadev = isa_try_create(bus, "isa-parallel"); + if (!isadev) { + return false; + } + dev = DEVICE(isadev); + qdev_prop_set_uint32(dev, "index", index); + qdev_prop_set_chr(dev, "chardev", chr); + if (qdev_init(dev) < 0) { + return false; + } + return true; +} + +void parallel_hds_isa_init(ISABus *bus, int n) +{ + int i; + + assert(n <= MAX_PARALLEL_PORTS); + + for (i = 0; i < n; i++) { + if (parallel_hds[i]) { + parallel_init(bus, i, parallel_hds[i]); + } + } +} -- cgit 1.4.1 From 4bc6a3e54e06c47b8e23bfa3d873fa2f42dfec02 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Wed, 4 Feb 2015 18:33:08 +0100 Subject: parallel: parallel_hds_isa_init() shouldn't fail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It shouldn't fail, and no caller checks for failure. Make failure fatal. Maintainers of affected machines cc'ed. Cc: Anthony Liguori Cc: "Michael S. Tsirkin" Cc: Aurelien Jarno Cc: Leon Alrae Cc: Blue Swirl Signed-off-by: Markus Armbruster Signed-off-by: Andreas Färber --- hw/char/parallel.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'hw/char/parallel.c') diff --git a/hw/char/parallel.c b/hw/char/parallel.c index 710cefcd94..4079554bb9 100644 --- a/hw/char/parallel.c +++ b/hw/char/parallel.c @@ -642,22 +642,16 @@ static void parallel_register_types(void) type_init(parallel_register_types) -static bool parallel_init(ISABus *bus, int index, CharDriverState *chr) +static void parallel_init(ISABus *bus, int index, CharDriverState *chr) { DeviceState *dev; ISADevice *isadev; - isadev = isa_try_create(bus, "isa-parallel"); - if (!isadev) { - return false; - } + isadev = isa_create(bus, "isa-parallel"); dev = DEVICE(isadev); qdev_prop_set_uint32(dev, "index", index); qdev_prop_set_chr(dev, "chardev", chr); - if (qdev_init(dev) < 0) { - return false; - } - return true; + qdev_init_nofail(dev); } void parallel_hds_isa_init(ISABus *bus, int n) -- cgit 1.4.1