From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236125691200.95898059993374; Fri, 20 Apr 2018 07:55:25 -0700 (PDT) Received: from localhost ([::1]:35142 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XRb-0007rE-VR for importer@patchew.org; Fri, 20 Apr 2018 10:55:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43573) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPW-0006VJ-QY for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPW-0007xa-0t for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:14 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPV-0007mN-PT for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:13 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XP8-0006Wz-Q8; Fri, 20 Apr 2018 15:52:50 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:37 +0100 Message-Id: <20180420145249.32435-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 01/13] hw/char/serial: Allow disconnected chardevs X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Currently the serial.c realize code has an explicit check that it is not connected to a disconnected backend (ie one with a NULL chardev). This isn't what we want -- you should be able to create a serial device even if it isn't attached to anything. Remove the check. Signed-off-by: Peter Maydell Acked-by: Thomas Huth Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/char/serial.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/hw/char/serial.c b/hw/char/serial.c index eb72191ee7..2c080c9862 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -923,11 +923,6 @@ static int serial_be_change(void *opaque) =20 void serial_realize_core(SerialState *s, Error **errp) { - if (!qemu_chr_fe_backend_connected(&s->chr)) { - error_setg(errp, "Can't create serial device, empty char device"); - return; - } - s->modem_status_poll =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, (QEMUTimerCB= *) serial_update_msl, s); =20 s->fifo_timeout_timer =3D timer_new_ns(QEMU_CLOCK_VIRTUAL, (QEMUTimerC= B *) fifo_timeout_int, s); --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236807592765.7797437826626; Fri, 20 Apr 2018 08:06:47 -0700 (PDT) Received: from localhost ([::1]:35568 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XcS-0000jD-K2 for importer@patchew.org; Fri, 20 Apr 2018 11:06:36 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43539) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPW-0006Ug-3w for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPV-0007wb-2C for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:14 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPU-0007mN-Q3 for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:12 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XP9-0006XC-HZ; Fri, 20 Apr 2018 15:52:51 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:38 +0100 Message-Id: <20180420145249.32435-3-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 02/13] hw/arm/fsl-imx*: Don't create "null" chardevs for serial devices X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Following commit 12051d82f004024, UART devices should handle being passed a NULL pointer chardev, so we don't need to create "null" backends in board code. Remove the code that does this and updates serial_hds[]. (fsl-imx7.c was already written this way.) Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth --- hw/arm/fsl-imx25.c | 12 +----------- hw/arm/fsl-imx31.c | 12 +----------- hw/arm/fsl-imx6.c | 13 +------------ 3 files changed, 3 insertions(+), 34 deletions(-) diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c index cb988a6c25..d7d064e5ce 100644 --- a/hw/arm/fsl-imx25.c +++ b/hw/arm/fsl-imx25.c @@ -118,17 +118,7 @@ static void fsl_imx25_realize(DeviceState *dev, Error = **errp) }; =20 if (i < MAX_SERIAL_PORTS) { - Chardev *chr; - - chr =3D serial_hds[i]; - - if (!chr) { - char label[20]; - snprintf(label, sizeof(label), "imx31.uart%d", i); - chr =3D qemu_chr_new(label, "null"); - } - - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", chr); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i= ]); } =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c index 3eee83d547..e6c788049d 100644 --- a/hw/arm/fsl-imx31.c +++ b/hw/arm/fsl-imx31.c @@ -107,17 +107,7 @@ static void fsl_imx31_realize(DeviceState *dev, Error = **errp) }; =20 if (i < MAX_SERIAL_PORTS) { - Chardev *chr; - - chr =3D serial_hds[i]; - - if (!chr) { - char label[20]; - snprintf(label, sizeof(label), "imx31.uart%d", i); - chr =3D qemu_chr_new(label, "null"); - } - - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", chr); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i= ]); } =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 9dfbc9a8c4..ea14de33c6 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -189,18 +189,7 @@ static void fsl_imx6_realize(DeviceState *dev, Error *= *errp) }; =20 if (i < MAX_SERIAL_PORTS) { - Chardev *chr; - - chr =3D serial_hds[i]; - - if (!chr) { - char *label =3D g_strdup_printf("imx6.uart%d", i + 1); - chr =3D qemu_chr_new(label, "null"); - g_free(label); - serial_hds[i] =3D chr; - } - - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", chr); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i= ]); } =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236694146135.54026165613618; Fri, 20 Apr 2018 08:04:54 -0700 (PDT) Received: from localhost ([::1]:35434 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9Xai-0007h0-D9 for importer@patchew.org; Fri, 20 Apr 2018 11:04:48 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43492) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPU-0006T8-QJ for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPU-0007vT-2b for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:12 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPT-0007mN-SC for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:12 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPA-0006XY-8F; Fri, 20 Apr 2018 15:52:52 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:39 +0100 Message-Id: <20180420145249.32435-4-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 03/13] hw/mips/boston.c: Don't create "null" chardevs for serial devices X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Following commit 12051d82f004024, UART devices should handle being passed a NULL pointer chardev, so we don't need to create "null" backends in board code. Remove the code that does this and updates serial_hds[]. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/mips/boston.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hw/mips/boston.c b/hw/mips/boston.c index fb23161b33..14f0f6673b 100644 --- a/hw/mips/boston.c +++ b/hw/mips/boston.c @@ -505,10 +505,6 @@ static void boston_mach_init(MachineState *machine) "boston-platregs", 0x1000); memory_region_add_subregion_overlap(sys_mem, 0x17ffd000, platreg, 0); =20 - if (!serial_hds[0]) { - serial_hds[0] =3D qemu_chr_new("serial0", "null"); - } - s->uart =3D serial_mm_init(sys_mem, 0x17ffe000, 2, get_cps_irq(s->cps, 3), 10000000, serial_hds[0], DEVICE_NATIVE_ENDIAN); --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236636236301.0280304265301; Fri, 20 Apr 2018 08:03:56 -0700 (PDT) Received: from localhost ([::1]:35417 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XZm-0006yX-9A for importer@patchew.org; Fri, 20 Apr 2018 11:03:50 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43468) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPT-0006Rn-SJ for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:12 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPT-0007un-4e for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:11 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPS-0007mN-Ue for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:11 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPB-0006Xr-0L; Fri, 20 Apr 2018 15:52:53 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:40 +0100 Message-Id: <20180420145249.32435-5-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 04/13] hw/mips/mips_malta: Don't create "null" chardevs for serial devices X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Following commit 12051d82f004024, UART devices should handle being passed a NULL pointer chardev, so we don't need to create "null" backends in board code. Remove the code that does this and updates serial_hds[]. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/mips/mips_malta.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index f6513a4fd5..49fe7a0a72 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -1056,11 +1056,6 @@ void mips_malta_init(MachineState *machine) =20 /* FPGA */ =20 - /* Make sure the second serial port is associated with a device. */ - if (!serial_hds[2]) { - serial_hds[2] =3D qemu_chr_new("fpga-uart", "null"); - } - /* The CBUS UART is attached to the MIPS CPU INT2 pin, ie interrupt 4 = */ malta_fpga_init(system_memory, FPGA_ADDRESS, cbus_irq, serial_hds[2]); =20 --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236458836675.1650301559929; Fri, 20 Apr 2018 08:00:58 -0700 (PDT) Received: from localhost ([::1]:35258 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XWu-0004fW-TB for importer@patchew.org; Fri, 20 Apr 2018 11:00:53 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43445) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPS-0006Ql-Rd for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPS-0007tw-6W for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:10 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPS-0007mN-08 for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:10 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPB-0006YB-PX; Fri, 20 Apr 2018 15:52:53 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:41 +0100 Message-Id: <20180420145249.32435-6-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 05/13] hw/xtensa/xtfpga.c: Don't create "null" chardevs for serial devices X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Following commit 12051d82f004024, UART devices should handle being passed a NULL pointer chardev, so we don't need to create "null" backends in board code. Remove the code that does this and updates serial_hds[]. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Tested-by: Philippe Mathieu-Daud=C3=A9 --- hw/xtensa/xtfpga.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index 70686a2eb1..9db99e1f7e 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -278,10 +278,6 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, = MachineState *machine) xtensa_get_extint(env, 1), nd_table); } =20 - if (!serial_hds[0]) { - serial_hds[0] =3D qemu_chr_new("serial0", "null"); - } - serial_mm_init(system_io, 0x0d050020, 2, xtensa_get_extint(env, 0), 115200, serial_hds[0], DEVICE_NATIVE_ENDIAN); =20 --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236515445145.8402452093011; Fri, 20 Apr 2018 08:01:55 -0700 (PDT) Received: from localhost ([::1]:35327 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XXu-0005Yx-BM for importer@patchew.org; Fri, 20 Apr 2018 11:01:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43419) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPR-0006Pu-VP for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPR-0007tK-86 for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:10 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPR-0007mN-1T for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:09 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPC-0006Yj-Gy; Fri, 20 Apr 2018 15:52:54 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:42 +0100 Message-Id: <20180420145249.32435-7-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 06/13] vl.c: Provide accessor function serial_hd() for serial_hds[] array X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Provide an accessor function serial_hd() to return the Chardev (if any) associated with the numbered serial port. This will be used to replace direct accesses to the serial_hds[] array, so that calling code doesn't need to care about the size of that array. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Tested-by: Philippe Mathieu-Daud=C3=A9 --- include/sysemu/sysemu.h | 3 +++ vl.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 2b42151c63..bd5b55c514 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -163,6 +163,9 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDic= t *qdict); =20 extern Chardev *serial_hds[MAX_SERIAL_PORTS]; =20 +/* Return the Chardev for serial port i, or NULL if none */ +Chardev *serial_hd(int i); + /* parallel ports */ =20 #define MAX_PARALLEL_PORTS 3 diff --git a/vl.c b/vl.c index fce1fd12d8..6daf026da6 100644 --- a/vl.c +++ b/vl.c @@ -2516,6 +2516,15 @@ static int serial_parse(const char *devname) return 0; } =20 +Chardev *serial_hd(int i) +{ + assert(i >=3D 0); + if (i < ARRAY_SIZE(serial_hds)) { + return serial_hds[i]; + } + return NULL; +} + static int parallel_parse(const char *devname) { static int index =3D 0; --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236311907589.0744891994442; Fri, 20 Apr 2018 07:58:31 -0700 (PDT) Received: from localhost ([::1]:35164 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XUb-0002Ib-P0 for importer@patchew.org; Fri, 20 Apr 2018 10:58:29 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43522) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPV-0006Tl-E1 for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:20 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPQ-0007sm-9z for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:13 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPP-0007mN-JU for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:08 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPD-0006Zb-8B; Fri, 20 Apr 2018 15:52:55 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:43 +0100 Message-Id: <20180420145249.32435-8-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 07/13] Change references to serial_hds[] to serial_hd() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Change all the uses of serial_hds[] to go via the new serial_hd() function. Code change produced with: find hw -name '*.[ch]' | xargs sed -i -e 's/serial_hds\[\([^]]*\)\]/serial= _hd(\1)/g' Signed-off-by: Peter Maydell Reviewed-by: Thomas Huth --- hw/arm/allwinner-a10.c | 4 ++-- hw/arm/aspeed_soc.c | 4 ++-- hw/arm/bcm2835_peripherals.c | 4 ++-- hw/arm/digic.c | 2 +- hw/arm/fsl-imx25.c | 2 +- hw/arm/fsl-imx31.c | 2 +- hw/arm/fsl-imx6.c | 4 ++-- hw/arm/fsl-imx7.c | 2 +- hw/arm/highbank.c | 2 +- hw/arm/integratorcp.c | 4 ++-- hw/arm/kzm.c | 4 ++-- hw/arm/mps2-tz.c | 2 +- hw/arm/mps2.c | 4 ++-- hw/arm/msf2-soc.c | 4 ++-- hw/arm/musicpal.c | 8 ++++---- hw/arm/omap1.c | 6 +++--- hw/arm/omap2.c | 10 +++++----- hw/arm/pxa2xx.c | 16 ++++++++-------- hw/arm/realview.c | 8 ++++---- hw/arm/stellaris.c | 2 +- hw/arm/stm32f205_soc.c | 2 +- hw/arm/strongarm.c | 2 +- hw/arm/versatilepb.c | 8 ++++---- hw/arm/vexpress.c | 8 ++++---- hw/arm/virt.c | 4 ++-- hw/arm/xilinx_zynq.c | 4 ++-- hw/arm/xlnx-zynqmp.c | 2 +- hw/char/exynos4210_uart.c | 2 +- hw/char/serial-isa.c | 4 ++-- hw/char/xen_console.c | 2 +- hw/cris/axis_dev88.c | 2 +- hw/hppa/machine.c | 4 ++-- hw/isa/isa-superio.c | 4 ++-- hw/lm32/lm32_boards.c | 8 ++++---- hw/lm32/milkymist.c | 4 ++-- hw/m68k/mcf5206.c | 4 ++-- hw/m68k/mcf5208.c | 6 +++--- hw/microblaze/petalogix_ml605_mmu.c | 2 +- hw/microblaze/petalogix_s3adsp1800_mmu.c | 2 +- hw/mips/boston.c | 2 +- hw/mips/mips_jazz.c | 8 ++++---- hw/mips/mips_malta.c | 2 +- hw/mips/mips_mipssim.c | 4 ++-- hw/misc/macio/macio.c | 4 ++-- hw/moxie/moxiesim.c | 4 ++-- hw/nios2/10m50_devboard.c | 2 +- hw/openrisc/openrisc_sim.c | 2 +- hw/ppc/e500.c | 12 ++++++------ hw/ppc/ppc405_uc.c | 16 ++++++++-------- hw/ppc/ppc440_bamboo.c | 8 ++++---- hw/ppc/sam460ex.c | 8 ++++---- hw/ppc/spapr.c | 4 ++-- hw/ppc/virtex_ml507.c | 2 +- hw/riscv/sifive_e.c | 4 ++-- hw/riscv/sifive_u.c | 4 ++-- hw/riscv/spike.c | 4 ++-- hw/riscv/virt.c | 2 +- hw/sh4/r2d.c | 2 +- hw/sh4/sh7750.c | 4 ++-- hw/sparc/leon3.c | 4 ++-- hw/sparc/sun4m.c | 4 ++-- hw/sparc64/niagara.c | 4 ++-- hw/sparc64/sun4u.c | 2 +- hw/xtensa/sim.c | 4 ++-- hw/xtensa/xtfpga.c | 2 +- 65 files changed, 143 insertions(+), 143 deletions(-) diff --git a/hw/arm/allwinner-a10.c b/hw/arm/allwinner-a10.c index 5dbbacb7e8..c5fbc654f2 100644 --- a/hw/arm/allwinner-a10.c +++ b/hw/arm/allwinner-a10.c @@ -108,9 +108,9 @@ static void aw_a10_realize(DeviceState *dev, Error **er= rp) sysbus_mmio_map(SYS_BUS_DEVICE(&s->sata), 0, AW_A10_SATA_BASE); sysbus_connect_irq(SYS_BUS_DEVICE(&s->sata), 0, s->irq[56]); =20 - /* FIXME use a qdev chardev prop instead of serial_hds[] */ + /* FIXME use a qdev chardev prop instead of serial_hd() */ serial_mm_init(get_system_memory(), AW_A10_UART0_REG_BASE, 2, s->irq[1= ], - 115200, serial_hds[0], DEVICE_NATIVE_ENDIAN); + 115200, serial_hd(0), DEVICE_NATIVE_ENDIAN); } =20 static void aw_a10_class_init(ObjectClass *oc, void *data) diff --git a/hw/arm/aspeed_soc.c b/hw/arm/aspeed_soc.c index 30d25f8b06..1219167a5e 100644 --- a/hw/arm/aspeed_soc.c +++ b/hw/arm/aspeed_soc.c @@ -229,11 +229,11 @@ static void aspeed_soc_realize(DeviceState *dev, Erro= r **errp) sysbus_mmio_map(SYS_BUS_DEVICE(&s->scu), 0, ASPEED_SOC_SCU_BASE); =20 /* UART - attach an 8250 to the IO space as our UART5 */ - if (serial_hds[0]) { + if (serial_hd(0)) { qemu_irq uart5 =3D qdev_get_gpio_in(DEVICE(&s->vic), uart_irqs[4]); serial_mm_init(get_system_memory(), ASPEED_SOC_IOMEM_BASE + ASPEED_SOC_UART_5_BASE, 2, - uart5, 38400, serial_hds[0], DEVICE_LITTLE_ENDIAN); + uart5, 38400, serial_hd(0), DEVICE_LITTLE_ENDIAN); } =20 /* I2C */ diff --git a/hw/arm/bcm2835_peripherals.c b/hw/arm/bcm2835_peripherals.c index 13b63970d7..6be7660e8c 100644 --- a/hw/arm/bcm2835_peripherals.c +++ b/hw/arm/bcm2835_peripherals.c @@ -166,7 +166,7 @@ static void bcm2835_peripherals_realize(DeviceState *de= v, Error **errp) sysbus_pass_irq(SYS_BUS_DEVICE(s), SYS_BUS_DEVICE(&s->ic)); =20 /* UART0 */ - qdev_prop_set_chr(DEVICE(s->uart0), "chardev", serial_hds[0]); + qdev_prop_set_chr(DEVICE(s->uart0), "chardev", serial_hd(0)); object_property_set_bool(OBJECT(s->uart0), true, "realized", &err); if (err) { error_propagate(errp, err); @@ -179,7 +179,7 @@ static void bcm2835_peripherals_realize(DeviceState *de= v, Error **errp) qdev_get_gpio_in_named(DEVICE(&s->ic), BCM2835_IC_GPU_IRQ, INTERRUPT_UART)); /* AUX / UART1 */ - qdev_prop_set_chr(DEVICE(&s->aux), "chardev", serial_hds[1]); + qdev_prop_set_chr(DEVICE(&s->aux), "chardev", serial_hd(1)); =20 object_property_set_bool(OBJECT(&s->aux), true, "realized", &err); if (err) { diff --git a/hw/arm/digic.c b/hw/arm/digic.c index 6184020985..726abb9b48 100644 --- a/hw/arm/digic.c +++ b/hw/arm/digic.c @@ -85,7 +85,7 @@ static void digic_realize(DeviceState *dev, Error **errp) sysbus_mmio_map(sbd, 0, DIGIC4_TIMER_BASE(i)); } =20 - qdev_prop_set_chr(DEVICE(&s->uart), "chardev", serial_hds[0]); + qdev_prop_set_chr(DEVICE(&s->uart), "chardev", serial_hd(0)); object_property_set_bool(OBJECT(&s->uart), true, "realized", &err); if (err !=3D NULL) { error_propagate(errp, err); diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c index d7d064e5ce..9731833fa5 100644 --- a/hw/arm/fsl-imx25.c +++ b/hw/arm/fsl-imx25.c @@ -118,7 +118,7 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) }; =20 if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i= ]); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); } =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c index e6c788049d..8509915200 100644 --- a/hw/arm/fsl-imx31.c +++ b/hw/arm/fsl-imx31.c @@ -107,7 +107,7 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) }; =20 if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i= ]); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); } =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index ea14de33c6..535ad5888b 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -189,7 +189,7 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) }; =20 if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i= ]); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); } =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); @@ -438,7 +438,7 @@ static void fsl_imx6_class_init(ObjectClass *oc, void *= data) =20 dc->realize =3D fsl_imx6_realize; dc->desc =3D "i.MX6 SOC"; - /* Reason: Uses serial_hds[] in the realize() function */ + /* Reason: Uses serial_hd() in the realize() function */ dc->user_creatable =3D false; } =20 diff --git a/hw/arm/fsl-imx7.c b/hw/arm/fsl-imx7.c index 390b4310e6..2848d76d3c 100644 --- a/hw/arm/fsl-imx7.c +++ b/hw/arm/fsl-imx7.c @@ -391,7 +391,7 @@ static void fsl_imx7_realize(DeviceState *dev, Error **= errp) =20 =20 if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i= ]); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); } =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", diff --git a/hw/arm/highbank.c b/hw/arm/highbank.c index 1742cf6f6c..0851d3b28a 100644 --- a/hw/arm/highbank.c +++ b/hw/arm/highbank.c @@ -342,7 +342,7 @@ static void calxeda_init(MachineState *machine, enum cx= machines machine_id) busdev =3D SYS_BUS_DEVICE(dev); sysbus_mmio_map(busdev, 0, 0xfff34000); sysbus_connect_irq(busdev, 0, pic[18]); - pl011_create(0xfff36000, pic[20], serial_hds[0]); + pl011_create(0xfff36000, pic[20], serial_hd(0)); =20 dev =3D qdev_create(NULL, TYPE_HIGHBANK_REGISTERS); qdev_init_nofail(dev); diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 58b40efc19..4eceebb9ea 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -631,8 +631,8 @@ static void integratorcp_init(MachineState *machine) sysbus_create_varargs("integrator_pit", 0x13000000, pic[5], pic[6], pic[7], NULL); sysbus_create_simple("pl031", 0x15000000, pic[8]); - pl011_create(0x16000000, pic[1], serial_hds[0]); - pl011_create(0x17000000, pic[2], serial_hds[1]); + pl011_create(0x16000000, pic[1], serial_hd(0)); + pl011_create(0x17000000, pic[2], serial_hd(1)); icp =3D sysbus_create_simple(TYPE_ICP_CONTROL_REGS, 0xcb000000, qdev_get_gpio_in(sic, 3)); sysbus_create_simple("pl050_keyboard", 0x18000000, pic[3]); diff --git a/hw/arm/kzm.c b/hw/arm/kzm.c index f9c2228e31..864c7bd411 100644 --- a/hw/arm/kzm.c +++ b/hw/arm/kzm.c @@ -121,10 +121,10 @@ static void kzm_init(MachineState *machine) qdev_get_gpio_in(DEVICE(&s->soc.avic), 52)); } =20 - if (serial_hds[2]) { /* touchscreen */ + if (serial_hd(2)) { /* touchscreen */ serial_mm_init(get_system_memory(), KZM_FPGA_ADDR+0x10, 0, qdev_get_gpio_in(DEVICE(&s->soc.avic), 52), - 14745600, serial_hds[2], DEVICE_NATIVE_ENDIAN); + 14745600, serial_hd(2), DEVICE_NATIVE_ENDIAN); } =20 kzm_binfo.ram_size =3D machine->ram_size; diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c index 8c86cffa9e..4ae4a5cb2a 100644 --- a/hw/arm/mps2-tz.c +++ b/hw/arm/mps2-tz.c @@ -172,7 +172,7 @@ static MemoryRegion *make_uart(MPS2TZMachineState *mms,= void *opaque, { CMSDKAPBUART *uart =3D opaque; int i =3D uart - &mms->uart[0]; - Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hds[i] : NULL; + Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hd(i) : NULL; int rxirqno =3D i * 2; int txirqno =3D i * 2 + 1; int combirqno =3D i + 10; diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index 694fb36866..eb550fad34 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -230,7 +230,7 @@ static void mps2_common_init(MachineState *machine) static const hwaddr uartbase[] =3D {0x40004000, 0x40005000, 0x40006000, 0x40007000, 0x40009000}; - Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hds[i] : NU= LL; + Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hd(i) : NUL= L; /* RX irq number; TX irq is always one greater */ static const int uartirq[] =3D {0, 2, 4, 18, 20}; qemu_irq txovrint =3D NULL, rxovrint =3D NULL; @@ -270,7 +270,7 @@ static void mps2_common_init(MachineState *machine) static const hwaddr uartbase[] =3D {0x40004000, 0x40005000, 0x4002c000, 0x4002d000, 0x4002e000}; - Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hds[i] : NU= LL; + Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hd(i) : NUL= L; Object *txrx_orgate; DeviceState *txrx_orgate_dev; =20 diff --git a/hw/arm/msf2-soc.c b/hw/arm/msf2-soc.c index f68df56b97..75c44adf7d 100644 --- a/hw/arm/msf2-soc.c +++ b/hw/arm/msf2-soc.c @@ -138,10 +138,10 @@ static void m2sxxx_soc_realize(DeviceState *dev_soc, = Error **errp) system_clock_scale =3D NANOSECONDS_PER_SECOND / s->m3clk; =20 for (i =3D 0; i < MSF2_NUM_UARTS; i++) { - if (serial_hds[i]) { + if (serial_hd(i)) { serial_mm_init(get_system_memory(), uart_addr[i], 2, qdev_get_gpio_in(armv7m, uart_irq[i]), - 115200, serial_hds[i], DEVICE_NATIVE_ENDIAN); + 115200, serial_hd(i), DEVICE_NATIVE_ENDIAN); } } =20 diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index 38d7322a19..c807010e83 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -1610,13 +1610,13 @@ static void musicpal_init(MachineState *machine) pic[MP_TIMER2_IRQ], pic[MP_TIMER3_IRQ], pic[MP_TIMER4_IRQ], NULL); =20 - if (serial_hds[0]) { + if (serial_hd(0)) { serial_mm_init(address_space_mem, MP_UART1_BASE, 2, pic[MP_UART1_I= RQ], - 1825000, serial_hds[0], DEVICE_NATIVE_ENDIAN); + 1825000, serial_hd(0), DEVICE_NATIVE_ENDIAN); } - if (serial_hds[1]) { + if (serial_hd(1)) { serial_mm_init(address_space_mem, MP_UART2_BASE, 2, pic[MP_UART2_I= RQ], - 1825000, serial_hds[1], DEVICE_NATIVE_ENDIAN); + 1825000, serial_hd(1), DEVICE_NATIVE_ENDIAN); } =20 /* Register flash */ diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index b3a23a83d1..24673abfca 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -3963,21 +3963,21 @@ struct omap_mpu_state_s *omap310_mpu_init(MemoryReg= ion *system_memory, omap_findclk(s, "uart1_ck"), s->drq[OMAP_DMA_UART1_TX], s->drq[OMAP_DMA_UART1_RX], "uart1", - serial_hds[0]); + serial_hd(0)); s->uart[1] =3D omap_uart_init(0xfffb0800, qdev_get_gpio_in(s->ih[1], OMAP_INT_UART2), omap_findclk(s, "uart2_ck"), omap_findclk(s, "uart2_ck"), s->drq[OMAP_DMA_UART2_TX], s->drq[OMAP_DMA_UART2_RX], "uart2", - serial_hds[0] ? serial_hds[1] : NULL); + serial_hd(0) ? serial_hd(1) : NULL); s->uart[2] =3D omap_uart_init(0xfffb9800, qdev_get_gpio_in(s->ih[0], OMAP_INT_UART3), omap_findclk(s, "uart3_ck"), omap_findclk(s, "uart3_ck"), s->drq[OMAP_DMA_UART3_TX], s->drq[OMAP_DMA_UART3_RX], "uart3", - serial_hds[0] && serial_hds[1] ? serial_hds[2] : NULL); + serial_hd(0) && serial_hd(1) ? serial_hd(2) : NULL); =20 s->dpll[0] =3D omap_dpll_init(system_memory, 0xfffecf00, omap_findclk(s, "dpll1")); diff --git a/hw/arm/omap2.c b/hw/arm/omap2.c index 647b119ba9..80663533e1 100644 --- a/hw/arm/omap2.c +++ b/hw/arm/omap2.c @@ -2349,7 +2349,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegi= on *sysmem, s->drq[OMAP24XX_DMA_UART1_TX], s->drq[OMAP24XX_DMA_UART1_RX], "uart1", - serial_hds[0]); + serial_hd(0)); s->uart[1] =3D omap2_uart_init(sysmem, omap_l4ta(s->l4, 20), qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_UART2_IRQ), @@ -2358,7 +2358,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegi= on *sysmem, s->drq[OMAP24XX_DMA_UART2_TX], s->drq[OMAP24XX_DMA_UART2_RX], "uart2", - serial_hds[0] ? serial_hds[1] : NULL); + serial_hd(0) ? serial_hd(1) : NULL); s->uart[2] =3D omap2_uart_init(sysmem, omap_l4ta(s->l4, 21), qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_UART3_IRQ), @@ -2367,7 +2367,7 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegi= on *sysmem, s->drq[OMAP24XX_DMA_UART3_TX], s->drq[OMAP24XX_DMA_UART3_RX], "uart3", - serial_hds[0] && serial_hds[1] ? serial_hds[2] : NULL); + serial_hd(0) && serial_hd(1) ? serial_hd(2) : NULL); =20 s->gptimer[0] =3D omap_gp_timer_init(omap_l4ta(s->l4, 7), qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_GPTIMER1), @@ -2519,8 +2519,8 @@ struct omap_mpu_state_s *omap2420_mpu_init(MemoryRegi= on *sysmem, omap_sti_init(omap_l4ta(s->l4, 18), sysmem, 0x54000000, qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_STI), omap_findclk(s, "emul_ck"), - serial_hds[0] && serial_hds[1] && serial_hds[2] ? - serial_hds[3] : NULL); + serial_hd(0) && serial_hd(1) && serial_hd(2) ? + serial_hd(3) : NULL); =20 s->eac =3D omap_eac_init(omap_l4ta(s->l4, 32), qdev_get_gpio_in(s->ih[0], OMAP_INT_24XX_EAC_IR= Q), diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index 5805a2c858..928a0431d6 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -2106,21 +2106,21 @@ PXA2xxState *pxa270_init(MemoryRegion *address_spac= e, qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI)); =20 for (i =3D 0; pxa270_serial[i].io_base; i++) { - if (serial_hds[i]) { + if (serial_hd(i)) { serial_mm_init(address_space, pxa270_serial[i].io_base, 2, qdev_get_gpio_in(s->pic, pxa270_serial[i].irqn), - 14857000 / 16, serial_hds[i], + 14857000 / 16, serial_hd(i), DEVICE_NATIVE_ENDIAN); } else { break; } } - if (serial_hds[i]) + if (serial_hd(i)) s->fir =3D pxa2xx_fir_init(address_space, 0x40800000, qdev_get_gpio_in(s->pic, PXA2XX_PIC_ICP), qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_ICP), qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_ICP), - serial_hds[i]); + serial_hd(i)); =20 s->lcd =3D pxa2xx_lcdc_init(address_space, 0x44000000, qdev_get_gpio_in(s->pic, PXA2XX_PIC_LCD)); @@ -2231,21 +2231,21 @@ PXA2xxState *pxa255_init(MemoryRegion *address_spac= e, unsigned int sdram_size) qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_MMCI)); =20 for (i =3D 0; pxa255_serial[i].io_base; i++) { - if (serial_hds[i]) { + if (serial_hd(i)) { serial_mm_init(address_space, pxa255_serial[i].io_base, 2, qdev_get_gpio_in(s->pic, pxa255_serial[i].irqn), - 14745600 / 16, serial_hds[i], + 14745600 / 16, serial_hd(i), DEVICE_NATIVE_ENDIAN); } else { break; } } - if (serial_hds[i]) + if (serial_hd(i)) s->fir =3D pxa2xx_fir_init(address_space, 0x40800000, qdev_get_gpio_in(s->pic, PXA2XX_PIC_ICP), qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_ICP), qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_ICP), - serial_hds[i]); + serial_hd(i)); =20 s->lcd =3D pxa2xx_lcdc_init(address_space, 0x44000000, qdev_get_gpio_in(s->pic, PXA2XX_PIC_LCD)); diff --git a/hw/arm/realview.c b/hw/arm/realview.c index 2139a62e25..cd585d9469 100644 --- a/hw/arm/realview.c +++ b/hw/arm/realview.c @@ -195,10 +195,10 @@ static void realview_init(MachineState *machine, sysbus_create_simple("pl050_keyboard", 0x10006000, pic[20]); sysbus_create_simple("pl050_mouse", 0x10007000, pic[21]); =20 - pl011_create(0x10009000, pic[12], serial_hds[0]); - pl011_create(0x1000a000, pic[13], serial_hds[1]); - pl011_create(0x1000b000, pic[14], serial_hds[2]); - pl011_create(0x1000c000, pic[15], serial_hds[3]); + pl011_create(0x10009000, pic[12], serial_hd(0)); + pl011_create(0x1000a000, pic[13], serial_hd(1)); + pl011_create(0x1000b000, pic[14], serial_hd(2)); + pl011_create(0x1000c000, pic[15], serial_hd(3)); =20 /* DMA controller is optional, apparently. */ sysbus_create_simple("pl081", 0x10030000, pic[24]); diff --git a/hw/arm/stellaris.c b/hw/arm/stellaris.c index de7c0fc4a6..e886f54976 100644 --- a/hw/arm/stellaris.c +++ b/hw/arm/stellaris.c @@ -1353,7 +1353,7 @@ static void stellaris_init(MachineState *ms, stellari= s_board_info *board) if (board->dc2 & (1 << i)) { pl011_luminary_create(0x4000c000 + i * 0x1000, qdev_get_gpio_in(nvic, uart_irq[i]), - serial_hds[i]); + serial_hd(i)); } } if (board->dc2 & (1 << 4)) { diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c index 1cd6374e07..f59418e7d0 100644 --- a/hw/arm/stm32f205_soc.c +++ b/hw/arm/stm32f205_soc.c @@ -136,7 +136,7 @@ static void stm32f205_soc_realize(DeviceState *dev_soc,= Error **errp) for (i =3D 0; i < STM_NUM_USARTS; i++) { dev =3D DEVICE(&(s->usart[i])); qdev_prop_set_chr(dev, "chardev", - i < MAX_SERIAL_PORTS ? serial_hds[i] : NULL); + i < MAX_SERIAL_PORTS ? serial_hd(i) : NULL); object_property_set_bool(OBJECT(&s->usart[i]), true, "realized", &= err); if (err !=3D NULL) { error_propagate(errp, err); diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c index 4cdb3a670b..ec2627374d 100644 --- a/hw/arm/strongarm.c +++ b/hw/arm/strongarm.c @@ -1622,7 +1622,7 @@ StrongARMState *sa1110_init(MemoryRegion *sysmem, =20 for (i =3D 0; sa_serial[i].io_base; i++) { DeviceState *dev =3D qdev_create(NULL, TYPE_STRONGARM_UART); - qdev_prop_set_chr(dev, "chardev", serial_hds[i]); + qdev_prop_set_chr(dev, "chardev", serial_hd(i)); qdev_init_nofail(dev); sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, sa_serial[i].io_base); diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 418792cd02..e01e3192ff 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -283,10 +283,10 @@ static void versatile_init(MachineState *machine, int= board_id) n--; } =20 - pl011_create(0x101f1000, pic[12], serial_hds[0]); - pl011_create(0x101f2000, pic[13], serial_hds[1]); - pl011_create(0x101f3000, pic[14], serial_hds[2]); - pl011_create(0x10009000, sic[6], serial_hds[3]); + pl011_create(0x101f1000, pic[12], serial_hd(0)); + pl011_create(0x101f2000, pic[13], serial_hd(1)); + pl011_create(0x101f3000, pic[14], serial_hd(2)); + pl011_create(0x10009000, sic[6], serial_hd(3)); =20 sysbus_create_simple("pl080", 0x10130000, pic[17]); sysbus_create_simple("sp804", 0x101e2000, pic[4]); diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c index 9fad79177a..f1e33c8a36 100644 --- a/hw/arm/vexpress.c +++ b/hw/arm/vexpress.c @@ -622,10 +622,10 @@ static void vexpress_common_init(MachineState *machin= e) sysbus_create_simple("pl050_keyboard", map[VE_KMI0], pic[12]); sysbus_create_simple("pl050_mouse", map[VE_KMI1], pic[13]); =20 - pl011_create(map[VE_UART0], pic[5], serial_hds[0]); - pl011_create(map[VE_UART1], pic[6], serial_hds[1]); - pl011_create(map[VE_UART2], pic[7], serial_hds[2]); - pl011_create(map[VE_UART3], pic[8], serial_hds[3]); + pl011_create(map[VE_UART0], pic[5], serial_hd(0)); + pl011_create(map[VE_UART1], pic[6], serial_hd(1)); + pl011_create(map[VE_UART2], pic[7], serial_hd(2)); + pl011_create(map[VE_UART3], pic[8], serial_hd(3)); =20 sysbus_create_simple("sp804", map[VE_TIMER01], pic[2]); sysbus_create_simple("sp804", map[VE_TIMER23], pic[3]); diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 94dcb125d3..a18291c5d5 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1371,11 +1371,11 @@ static void machvirt_init(MachineState *machine) =20 fdt_add_pmu_nodes(vms); =20 - create_uart(vms, pic, VIRT_UART, sysmem, serial_hds[0]); + create_uart(vms, pic, VIRT_UART, sysmem, serial_hd(0)); =20 if (vms->secure) { create_secure_ram(vms, secure_sysmem); - create_uart(vms, pic, VIRT_SECURE_UART, secure_sysmem, serial_hds[= 1]); + create_uart(vms, pic, VIRT_SECURE_UART, secure_sysmem, serial_hd(1= )); } =20 create_rtc(vms, pic); diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 0f76333770..899a26326f 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -236,8 +236,8 @@ static void zynq_init(MachineState *machine) sysbus_create_simple("xlnx,ps7-usb", 0xE0002000, pic[53-IRQ_OFFSET]); sysbus_create_simple("xlnx,ps7-usb", 0xE0003000, pic[76-IRQ_OFFSET]); =20 - cadence_uart_create(0xE0000000, pic[59 - IRQ_OFFSET], serial_hds[0]); - cadence_uart_create(0xE0001000, pic[82 - IRQ_OFFSET], serial_hds[1]); + cadence_uart_create(0xE0000000, pic[59 - IRQ_OFFSET], serial_hd(0)); + cadence_uart_create(0xE0001000, pic[82 - IRQ_OFFSET], serial_hd(1)); =20 sysbus_create_varargs("cadence_ttc", 0xF8001000, pic[42-IRQ_OFFSET], pic[43-IRQ_OFFSET], pic[44-IRQ_OFFSET], NU= LL); diff --git a/hw/arm/xlnx-zynqmp.c b/hw/arm/xlnx-zynqmp.c index 465796e97c..505253e0d2 100644 --- a/hw/arm/xlnx-zynqmp.c +++ b/hw/arm/xlnx-zynqmp.c @@ -374,7 +374,7 @@ static void xlnx_zynqmp_realize(DeviceState *dev, Error= **errp) } =20 for (i =3D 0; i < XLNX_ZYNQMP_NUM_UARTS; i++) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hds[i]); + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)); object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); if (err) { error_propagate(errp, err); diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index 3957e78abf..c2bba03362 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -600,7 +600,7 @@ DeviceState *exynos4210_uart_create(hwaddr addr, MAX_SERIAL_PORTS); exit(1); } - chr =3D serial_hds[channel]; + chr =3D serial_hd(channel); if (!chr) { snprintf(label, ARRAY_SIZE(label), "%s%d", chr_name, channel); chr =3D qemu_chr_new(label, "null"); diff --git a/hw/char/serial-isa.c b/hw/char/serial-isa.c index d7c5cc11fe..eb5996159d 100644 --- a/hw/char/serial-isa.c +++ b/hw/char/serial-isa.c @@ -141,8 +141,8 @@ void serial_hds_isa_init(ISABus *bus, int from, int to) assert(to <=3D MAX_SERIAL_PORTS); =20 for (i =3D from; i < to; ++i) { - if (serial_hds[i]) { - serial_isa_init(bus, i, serial_hds[i]); + if (serial_hd(i)) { + serial_isa_init(bus, i, serial_hd(i)); } } } diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c index 5e68326c19..bdfaa40ed3 100644 --- a/hw/char/xen_console.c +++ b/hw/char/xen_console.c @@ -201,7 +201,7 @@ static int con_init(struct XenDevice *xendev) /* no Xen override, use qemu output device */ if (output =3D=3D NULL) { if (con->xendev.dev) { - qemu_chr_fe_init(&con->chr, serial_hds[con->xendev.dev], + qemu_chr_fe_init(&con->chr, serial_hd(con->xendev.dev), &error_abort); } } else { diff --git a/hw/cris/axis_dev88.c b/hw/cris/axis_dev88.c index 9ccc4350a5..409f3d581a 100644 --- a/hw/cris/axis_dev88.c +++ b/hw/cris/axis_dev88.c @@ -337,7 +337,7 @@ void axisdev88_init(MachineState *machine) sysbus_create_varargs("etraxfs,timer", 0x3005e000, irq[0x1b], nmi[1], = NULL); =20 for (i =3D 0; i < 4; i++) { - etraxfs_ser_create(0x30026000 + i * 0x2000, irq[0x14 + i], serial_= hds[i]); + etraxfs_ser_create(0x30026000 + i * 0x2000, irq[0x14 + i], serial_= hd(i)); } =20 if (kernel_filename) { diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index 19033e268d..a1d6b0ebfb 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -108,10 +108,10 @@ static void machine_hppa_init(MachineState *machine) mc146818_rtc_init(isa_bus, 2000, rtc_irq); =20 /* Serial code setup. */ - if (serial_hds[0]) { + if (serial_hd(0)) { uint32_t addr =3D DINO_UART_HPA + 0x800; serial_mm_init(addr_space, addr, 0, serial_irq, - 115200, serial_hds[0], DEVICE_BIG_ENDIAN); + 115200, serial_hd(0), DEVICE_BIG_ENDIAN); } =20 /* SCSI disk setup. */ diff --git a/hw/isa/isa-superio.c b/hw/isa/isa-superio.c index b95608a003..76286c81a1 100644 --- a/hw/isa/isa-superio.c +++ b/hw/isa/isa-superio.c @@ -81,8 +81,8 @@ static void isa_superio_realize(DeviceState *dev, Error *= *errp) break; } if (!k->serial.is_enabled || k->serial.is_enabled(sio, i)) { - /* FIXME use a qdev chardev prop instead of serial_hds[] */ - chr =3D serial_hds[i]; + /* FIXME use a qdev chardev prop instead of serial_hd() */ + chr =3D serial_hd(i); if (chr =3D=3D NULL || chr->be) { name =3D g_strdup_printf("discarding-serial%d", i); chr =3D qemu_chr_new(name, "null"); diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c index 527bcc229c..907e875d02 100644 --- a/hw/lm32/lm32_boards.c +++ b/hw/lm32/lm32_boards.c @@ -125,12 +125,12 @@ static void lm32_evr_init(MachineState *machine) irq[i] =3D qdev_get_gpio_in(env->pic_state, i); } =20 - lm32_uart_create(uart0_base, irq[uart0_irq], serial_hds[0]); + lm32_uart_create(uart0_base, irq[uart0_irq], serial_hd(0)); sysbus_create_simple("lm32-timer", timer0_base, irq[timer0_irq]); sysbus_create_simple("lm32-timer", timer1_base, irq[timer1_irq]); =20 /* make sure juart isn't the first chardev */ - env->juart_state =3D lm32_juart_init(serial_hds[1]); + env->juart_state =3D lm32_juart_init(serial_hd(1)); =20 reset_info->bootstrap_pc =3D flash_base; =20 @@ -217,13 +217,13 @@ static void lm32_uclinux_init(MachineState *machine) irq[i] =3D qdev_get_gpio_in(env->pic_state, i); } =20 - lm32_uart_create(uart0_base, irq[uart0_irq], serial_hds[0]); + lm32_uart_create(uart0_base, irq[uart0_irq], serial_hd(0)); sysbus_create_simple("lm32-timer", timer0_base, irq[timer0_irq]); sysbus_create_simple("lm32-timer", timer1_base, irq[timer1_irq]); sysbus_create_simple("lm32-timer", timer2_base, irq[timer2_irq]); =20 /* make sure juart isn't the first chardev */ - env->juart_state =3D lm32_juart_init(serial_hds[1]); + env->juart_state =3D lm32_juart_init(serial_hd(1)); =20 reset_info->bootstrap_pc =3D flash_base; =20 diff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c index 85d64fe58d..f9688e059e 100644 --- a/hw/lm32/milkymist.c +++ b/hw/lm32/milkymist.c @@ -151,7 +151,7 @@ milkymist_init(MachineState *machine) } g_free(bios_filename); =20 - milkymist_uart_create(0x60000000, irq[0], serial_hds[0]); + milkymist_uart_create(0x60000000, irq[0], serial_hd(0)); milkymist_sysctl_create(0x60001000, irq[1], irq[2], irq[3], 80000000, 0x10014d31, 0x0000041f, 0x00000001); milkymist_hpdmc_create(0x60002000); @@ -167,7 +167,7 @@ milkymist_init(MachineState *machine) 0x20000000, 0x1000, 0x20020000, 0x2000); =20 /* make sure juart isn't the first chardev */ - env->juart_state =3D lm32_juart_init(serial_hds[1]); + env->juart_state =3D lm32_juart_init(serial_hd(1)); =20 if (kernel_filename) { uint64_t entry; diff --git a/hw/m68k/mcf5206.c b/hw/m68k/mcf5206.c index bd8e993c58..6ad1e4bd2d 100644 --- a/hw/m68k/mcf5206.c +++ b/hw/m68k/mcf5206.c @@ -543,8 +543,8 @@ qemu_irq *mcf5206_init(MemoryRegion *sysmem, uint32_t b= ase, M68kCPU *cpu) pic =3D qemu_allocate_irqs(m5206_mbar_set_irq, s, 14); s->timer[0] =3D m5206_timer_init(pic[9]); s->timer[1] =3D m5206_timer_init(pic[10]); - s->uart[0] =3D mcf_uart_init(pic[12], serial_hds[0]); - s->uart[1] =3D mcf_uart_init(pic[13], serial_hds[1]); + s->uart[0] =3D mcf_uart_init(pic[12], serial_hd(0)); + s->uart[1] =3D mcf_uart_init(pic[13], serial_hd(1)); s->cpu =3D cpu; =20 m5206_mbar_reset(s); diff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c index fac0d09cbc..7aca58542e 100644 --- a/hw/m68k/mcf5208.c +++ b/hw/m68k/mcf5208.c @@ -247,9 +247,9 @@ static void mcf5208evb_init(MachineState *machine) /* Internal peripherals. */ pic =3D mcf_intc_init(address_space_mem, 0xfc048000, cpu); =20 - mcf_uart_mm_init(0xfc060000, pic[26], serial_hds[0]); - mcf_uart_mm_init(0xfc064000, pic[27], serial_hds[1]); - mcf_uart_mm_init(0xfc068000, pic[28], serial_hds[2]); + mcf_uart_mm_init(0xfc060000, pic[26], serial_hd(0)); + mcf_uart_mm_init(0xfc064000, pic[27], serial_hd(1)); + mcf_uart_mm_init(0xfc068000, pic[28], serial_hd(2)); =20 mcf5208_sys_init(address_space_mem, pic); =20 diff --git a/hw/microblaze/petalogix_ml605_mmu.c b/hw/microblaze/petalogix_= ml605_mmu.c index b664dc0f9c..cf6bf3f32a 100644 --- a/hw/microblaze/petalogix_ml605_mmu.c +++ b/hw/microblaze/petalogix_ml605_mmu.c @@ -125,7 +125,7 @@ petalogix_ml605_init(MachineState *machine) } =20 serial_mm_init(address_space_mem, UART16550_BASEADDR + 0x1000, 2, - irq[UART16550_IRQ], 115200, serial_hds[0], + irq[UART16550_IRQ], 115200, serial_hd(0), DEVICE_LITTLE_ENDIAN); =20 /* 2 timers at irq 2 @ 100 Mhz. */ diff --git a/hw/microblaze/petalogix_s3adsp1800_mmu.c b/hw/microblaze/petal= ogix_s3adsp1800_mmu.c index 5cb4deb69e..1186002a76 100644 --- a/hw/microblaze/petalogix_s3adsp1800_mmu.c +++ b/hw/microblaze/petalogix_s3adsp1800_mmu.c @@ -103,7 +103,7 @@ petalogix_s3adsp1800_init(MachineState *machine) } =20 xilinx_uartlite_create(UARTLITE_BASEADDR, irq[UARTLITE_IRQ], - serial_hds[0]); + serial_hd(0)); =20 /* 2 timers at irq 2 @ 62 Mhz. */ dev =3D qdev_create(NULL, "xlnx.xps-timer"); diff --git a/hw/mips/boston.c b/hw/mips/boston.c index 14f0f6673b..5302e5c885 100644 --- a/hw/mips/boston.c +++ b/hw/mips/boston.c @@ -507,7 +507,7 @@ static void boston_mach_init(MachineState *machine) =20 s->uart =3D serial_mm_init(sys_mem, 0x17ffe000, 2, get_cps_irq(s->cps, 3), 10000000, - serial_hds[0], DEVICE_NATIVE_ENDIAN); + serial_hd(0), DEVICE_NATIVE_ENDIAN); =20 lcd =3D g_new(MemoryRegion, 1); memory_region_init_io(lcd, NULL, &boston_lcd_ops, s, "boston-lcd", 0x8= ); diff --git a/hw/mips/mips_jazz.c b/hw/mips/mips_jazz.c index 7223085547..90cb306f53 100644 --- a/hw/mips/mips_jazz.c +++ b/hw/mips/mips_jazz.c @@ -303,15 +303,15 @@ static void mips_jazz_init(MachineState *machine, memory_region_add_subregion(address_space, 0x80005000, i8042); =20 /* Serial ports */ - if (serial_hds[0]) { + if (serial_hd(0)) { serial_mm_init(address_space, 0x80006000, 0, qdev_get_gpio_in(rc4030, 8), 8000000/16, - serial_hds[0], DEVICE_NATIVE_ENDIAN); + serial_hd(0), DEVICE_NATIVE_ENDIAN); } - if (serial_hds[1]) { + if (serial_hd(1)) { serial_mm_init(address_space, 0x80007000, 0, qdev_get_gpio_in(rc4030, 9), 8000000/16, - serial_hds[1], DEVICE_NATIVE_ENDIAN); + serial_hd(1), DEVICE_NATIVE_ENDIAN); } =20 /* Parallel port */ diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 49fe7a0a72..af70ecffc0 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -1057,7 +1057,7 @@ void mips_malta_init(MachineState *machine) /* FPGA */ =20 /* The CBUS UART is attached to the MIPS CPU INT2 pin, ie interrupt 4 = */ - malta_fpga_init(system_memory, FPGA_ADDRESS, cbus_irq, serial_hds[2]); + malta_fpga_init(system_memory, FPGA_ADDRESS, cbus_irq, serial_hd(2)); =20 /* Load firmware in flash / BIOS. */ dinfo =3D drive_get(IF_PFLASH, 0, fl_idx); diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c index e0ba5efc84..241faa1d0f 100644 --- a/hw/mips/mips_mipssim.c +++ b/hw/mips/mips_mipssim.c @@ -213,8 +213,8 @@ mips_mipssim_init(MachineState *machine) =20 /* A single 16450 sits at offset 0x3f8. It is attached to MIPS CPU INT2, which is interrupt 4. */ - if (serial_hds[0]) - serial_init(0x3f8, env->irq[4], 115200, serial_hds[0], + if (serial_hd(0)) + serial_init(0x3f8, env->irq[4], 115200, serial_hd(0), get_system_io()); =20 if (nd_table[0].used) diff --git a/hw/misc/macio/macio.c b/hw/misc/macio/macio.c index b74a6572b0..a0cefe5719 100644 --- a/hw/misc/macio/macio.c +++ b/hw/misc/macio/macio.c @@ -118,8 +118,8 @@ static void macio_common_realize(PCIDevice *d, Error **= errp) qdev_prop_set_uint32(DEVICE(&s->escc), "disabled", 0); qdev_prop_set_uint32(DEVICE(&s->escc), "frequency", ESCC_CLOCK); qdev_prop_set_uint32(DEVICE(&s->escc), "it_shift", 4); - qdev_prop_set_chr(DEVICE(&s->escc), "chrA", serial_hds[0]); - qdev_prop_set_chr(DEVICE(&s->escc), "chrB", serial_hds[1]); + qdev_prop_set_chr(DEVICE(&s->escc), "chrA", serial_hd(0)); + qdev_prop_set_chr(DEVICE(&s->escc), "chrB", serial_hd(1)); qdev_prop_set_uint32(DEVICE(&s->escc), "chnBtype", escc_serial); qdev_prop_set_uint32(DEVICE(&s->escc), "chnAtype", escc_serial); object_property_set_bool(OBJECT(&s->escc), true, "realized", &err); diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c index 0bbf770795..d41247dbdc 100644 --- a/hw/moxie/moxiesim.c +++ b/hw/moxie/moxiesim.c @@ -141,9 +141,9 @@ static void moxiesim_init(MachineState *machine) } =20 /* A single 16450 sits at offset 0x3f8. */ - if (serial_hds[0]) { + if (serial_hd(0)) { serial_mm_init(address_space_mem, 0x3f8, 0, env->irq[4], - 8000000/16, serial_hds[0], DEVICE_LITTLE_ENDIAN); + 8000000/16, serial_hd(0), DEVICE_LITTLE_ENDIAN); } } =20 diff --git a/hw/nios2/10m50_devboard.c b/hw/nios2/10m50_devboard.c index 42053b2ca9..36b49a420c 100644 --- a/hw/nios2/10m50_devboard.c +++ b/hw/nios2/10m50_devboard.c @@ -92,7 +92,7 @@ static void nios2_10m50_ghrd_init(MachineState *machine) =20 /* Register: Altera 16550 UART */ serial_mm_init(address_space_mem, 0xf8001600, 2, irq[1], 115200, - serial_hds[0], DEVICE_NATIVE_ENDIAN); + serial_hd(0), DEVICE_NATIVE_ENDIAN); =20 /* Register: Timer sys_clk_timer */ dev =3D qdev_create(NULL, "ALTR.timer"); diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c index c755f11efd..a495a84a41 100644 --- a/hw/openrisc/openrisc_sim.c +++ b/hw/openrisc/openrisc_sim.c @@ -164,7 +164,7 @@ static void openrisc_sim_init(MachineState *machine) } =20 serial_mm_init(get_system_memory(), 0x90000000, 0, serial_irq, - 115200, serial_hds[0], DEVICE_NATIVE_ENDIAN); + 115200, serial_hd(0), DEVICE_NATIVE_ENDIAN); =20 openrisc_load_kernel(ram_size, kernel_filename); } diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 9a85a41362..2ddab7ed24 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -456,12 +456,12 @@ static int ppce500_load_device_tree(MachineState *mac= hine, * device it finds in the dt as serial output device. And we generate * devices in reverse order to the dt. */ - if (serial_hds[1]) { + if (serial_hd(1)) { dt_serial_create(fdt, MPC8544_SERIAL1_REGS_OFFSET, soc, mpic, "serial1", 1, false); } =20 - if (serial_hds[0]) { + if (serial_hd(0)) { dt_serial_create(fdt, MPC8544_SERIAL0_REGS_OFFSET, soc, mpic, "serial0", 0, true); } @@ -875,16 +875,16 @@ void ppce500_init(MachineState *machine, PPCE500Param= s *params) mpicdev =3D ppce500_init_mpic(machine, params, ccsr_addr_space, irqs); =20 /* Serial */ - if (serial_hds[0]) { + if (serial_hd(0)) { serial_mm_init(ccsr_addr_space, MPC8544_SERIAL0_REGS_OFFSET, 0, qdev_get_gpio_in(mpicdev, 42), 399193, - serial_hds[0], DEVICE_BIG_ENDIAN); + serial_hd(0), DEVICE_BIG_ENDIAN); } =20 - if (serial_hds[1]) { + if (serial_hd(1)) { serial_mm_init(ccsr_addr_space, MPC8544_SERIAL1_REGS_OFFSET, 0, qdev_get_gpio_in(mpicdev, 42), 399193, - serial_hds[1], DEVICE_BIG_ENDIAN); + serial_hd(1), DEVICE_BIG_ENDIAN); } =20 /* General Utility device */ diff --git a/hw/ppc/ppc405_uc.c b/hw/ppc/ppc405_uc.c index 205ebcea93..34f8d57b07 100644 --- a/hw/ppc/ppc405_uc.c +++ b/hw/ppc/ppc405_uc.c @@ -1660,14 +1660,14 @@ CPUPPCState *ppc405cr_init(MemoryRegion *address_sp= ace_mem, dma_irqs[3] =3D pic[23]; ppc405_dma_init(env, dma_irqs); /* Serial ports */ - if (serial_hds[0] !=3D NULL) { + if (serial_hd(0) !=3D NULL) { serial_mm_init(address_space_mem, 0xef600300, 0, pic[0], - PPC_SERIAL_MM_BAUDBASE, serial_hds[0], + PPC_SERIAL_MM_BAUDBASE, serial_hd(0), DEVICE_BIG_ENDIAN); } - if (serial_hds[1] !=3D NULL) { + if (serial_hd(1) !=3D NULL) { serial_mm_init(address_space_mem, 0xef600400, 0, pic[1], - PPC_SERIAL_MM_BAUDBASE, serial_hds[1], + PPC_SERIAL_MM_BAUDBASE, serial_hd(1), DEVICE_BIG_ENDIAN); } /* IIC controller */ @@ -2023,14 +2023,14 @@ CPUPPCState *ppc405ep_init(MemoryRegion *address_sp= ace_mem, /* GPIO */ ppc405_gpio_init(0xef600700); /* Serial ports */ - if (serial_hds[0] !=3D NULL) { + if (serial_hd(0) !=3D NULL) { serial_mm_init(address_space_mem, 0xef600300, 0, pic[0], - PPC_SERIAL_MM_BAUDBASE, serial_hds[0], + PPC_SERIAL_MM_BAUDBASE, serial_hd(0), DEVICE_BIG_ENDIAN); } - if (serial_hds[1] !=3D NULL) { + if (serial_hd(1) !=3D NULL) { serial_mm_init(address_space_mem, 0xef600400, 0, pic[1], - PPC_SERIAL_MM_BAUDBASE, serial_hds[1], + PPC_SERIAL_MM_BAUDBASE, serial_hd(1), DEVICE_BIG_ENDIAN); } /* OCM */ diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 8641986a71..44e6a0c21b 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -238,14 +238,14 @@ static void bamboo_init(MachineState *machine) get_system_io(), 0, PPC440EP_PCI_IOLEN); memory_region_add_subregion(get_system_memory(), PPC440EP_PCI_IO, isa); =20 - if (serial_hds[0] !=3D NULL) { + if (serial_hd(0) !=3D NULL) { serial_mm_init(address_space_mem, 0xef600300, 0, pic[0], - PPC_SERIAL_MM_BAUDBASE, serial_hds[0], + PPC_SERIAL_MM_BAUDBASE, serial_hd(0), DEVICE_BIG_ENDIAN); } - if (serial_hds[1] !=3D NULL) { + if (serial_hd(1) !=3D NULL) { serial_mm_init(address_space_mem, 0xef600400, 0, pic[1], - PPC_SERIAL_MM_BAUDBASE, serial_hds[1], + PPC_SERIAL_MM_BAUDBASE, serial_hd(1), DEVICE_BIG_ENDIAN); } =20 diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index dfff262f96..a48e6e6fce 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -522,14 +522,14 @@ static void sam460ex_init(MachineState *machine) =20 /* SoC has 4 UARTs * but board has only one wired and two are present in fdt */ - if (serial_hds[0] !=3D NULL) { + if (serial_hd(0) !=3D NULL) { serial_mm_init(address_space_mem, 0x4ef600300, 0, uic[1][1], - PPC_SERIAL_MM_BAUDBASE, serial_hds[0], + PPC_SERIAL_MM_BAUDBASE, serial_hd(0), DEVICE_BIG_ENDIAN); } - if (serial_hds[1] !=3D NULL) { + if (serial_hd(1) !=3D NULL) { serial_mm_init(address_space_mem, 0x4ef600400, 0, uic[0][1], - PPC_SERIAL_MM_BAUDBASE, serial_hds[1], + PPC_SERIAL_MM_BAUDBASE, serial_hd(1), DEVICE_BIG_ENDIAN); } =20 diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index a81570e7c8..b0ecfaca9e 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2590,8 +2590,8 @@ static void spapr_machine_init(MachineState *machine) spapr->vio_bus =3D spapr_vio_bus_init(); =20 for (i =3D 0; i < MAX_SERIAL_PORTS; i++) { - if (serial_hds[i]) { - spapr_vty_create(spapr->vio_bus, serial_hds[i]); + if (serial_hd(i)) { + spapr_vty_create(spapr->vio_bus, serial_hd(i)); } } =20 diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c index 77a1778e07..a80cbdd7ee 100644 --- a/hw/ppc/virtex_ml507.c +++ b/hw/ppc/virtex_ml507.c @@ -251,7 +251,7 @@ static void virtex_init(MachineState *machine) } =20 serial_mm_init(address_space_mem, UART16550_BASEADDR, 2, irq[UART16550= _IRQ], - 115200, serial_hds[0], DEVICE_LITTLE_ENDIAN); + 115200, serial_hd(0), DEVICE_LITTLE_ENDIAN); =20 /* 2 timers at irq 2 @ 62 Mhz. */ dev =3D qdev_create(NULL, "xlnx.xps-timer"); diff --git a/hw/riscv/sifive_e.c b/hw/riscv/sifive_e.c index 19eca36ff4..487244890e 100644 --- a/hw/riscv/sifive_e.c +++ b/hw/riscv/sifive_e.c @@ -162,13 +162,13 @@ static void riscv_sifive_e_init(MachineState *machine) sifive_mmio_emulate(sys_mem, "riscv.sifive.e.gpio0", memmap[SIFIVE_E_GPIO0].base, memmap[SIFIVE_E_GPIO0].size); sifive_uart_create(sys_mem, memmap[SIFIVE_E_UART0].base, - serial_hds[0], SIFIVE_PLIC(s->plic)->irqs[SIFIVE_E_UART0_IRQ]); + serial_hd(0), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_E_UART0_IRQ]); sifive_mmio_emulate(sys_mem, "riscv.sifive.e.qspi0", memmap[SIFIVE_E_QSPI0].base, memmap[SIFIVE_E_QSPI0].size); sifive_mmio_emulate(sys_mem, "riscv.sifive.e.pwm0", memmap[SIFIVE_E_PWM0].base, memmap[SIFIVE_E_PWM0].size); /* sifive_uart_create(sys_mem, memmap[SIFIVE_E_UART1].base, - serial_hds[1], SIFIVE_PLIC(s->plic)->irqs[SIFIVE_E_UART1_IRQ]); */ + serial_hd(1), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_E_UART1_IRQ]); */ sifive_mmio_emulate(sys_mem, "riscv.sifive.e.qspi1", memmap[SIFIVE_E_QSPI1].base, memmap[SIFIVE_E_QSPI1].size); sifive_mmio_emulate(sys_mem, "riscv.sifive.e.pwm1", diff --git a/hw/riscv/sifive_u.c b/hw/riscv/sifive_u.c index 1c2deefa6c..66616bacd7 100644 --- a/hw/riscv/sifive_u.c +++ b/hw/riscv/sifive_u.c @@ -296,9 +296,9 @@ static void riscv_sifive_u_init(MachineState *machine) SIFIVE_U_PLIC_CONTEXT_STRIDE, memmap[SIFIVE_U_PLIC].size); sifive_uart_create(sys_memory, memmap[SIFIVE_U_UART0].base, - serial_hds[0], SIFIVE_PLIC(s->plic)->irqs[SIFIVE_U_UART0_IRQ]); + serial_hd(0), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_U_UART0_IRQ]); /* sifive_uart_create(sys_memory, memmap[SIFIVE_U_UART1].base, - serial_hds[1], SIFIVE_PLIC(s->plic)->irqs[SIFIVE_U_UART1_IRQ]); */ + serial_hd(1), SIFIVE_PLIC(s->plic)->irqs[SIFIVE_U_UART1_IRQ]); */ sifive_clint_create(memmap[SIFIVE_U_CLINT].base, memmap[SIFIVE_U_CLINT].size, smp_cpus, SIFIVE_SIP_BASE, SIFIVE_TIMECMP_BASE, SIFIVE_TIME_BASE); diff --git a/hw/riscv/spike.c b/hw/riscv/spike.c index 2d1f114d40..62857e4fa0 100644 --- a/hw/riscv/spike.c +++ b/hw/riscv/spike.c @@ -233,7 +233,7 @@ static void spike_v1_10_0_board_init(MachineState *mach= ine) s->fdt, s->fdt_size); =20 /* initialize HTIF using symbols found in load_kernel */ - htif_mm_init(system_memory, boot_rom, &s->soc.harts[0].env, serial_hds= [0]); + htif_mm_init(system_memory, boot_rom, &s->soc.harts[0].env, serial_hd(= 0)); =20 /* Core Local Interruptor (timer and IPI) */ sifive_clint_create(memmap[SPIKE_CLINT].base, memmap[SPIKE_CLINT].size, @@ -330,7 +330,7 @@ static void spike_v1_09_1_board_init(MachineState *mach= ine) config_string, config_string_len); =20 /* initialize HTIF using symbols found in load_kernel */ - htif_mm_init(system_memory, boot_rom, &s->soc.harts[0].env, serial_hds= [0]); + htif_mm_init(system_memory, boot_rom, &s->soc.harts[0].env, serial_hd(= 0)); =20 /* Core Local Interruptor (timer and IPI) */ sifive_clint_create(memmap[SPIKE_CLINT].base, memmap[SPIKE_CLINT].size, diff --git a/hw/riscv/virt.c b/hw/riscv/virt.c index e2c214e86a..4f69eb2cff 100644 --- a/hw/riscv/virt.c +++ b/hw/riscv/virt.c @@ -382,7 +382,7 @@ static void riscv_virt_board_init(MachineState *machine) =20 serial_mm_init(system_memory, memmap[VIRT_UART0].base, 0, SIFIVE_PLIC(s->plic)->irqs[UART0_IRQ], 399193, - serial_hds[0], DEVICE_LITTLE_ENDIAN); + serial_hd(0), DEVICE_LITTLE_ENDIAN); } =20 static int riscv_virt_board_sysbus_device_init(SysBusDevice *sysbusdev) diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c index 458ed83297..6b01d6eed8 100644 --- a/hw/sh4/r2d.c +++ b/hw/sh4/r2d.c @@ -271,7 +271,7 @@ static void r2d_init(MachineState *machine) busdev =3D SYS_BUS_DEVICE(dev); qdev_prop_set_uint32(dev, "vram-size", SM501_VRAM_SIZE); qdev_prop_set_uint32(dev, "base", 0x10000000); - qdev_prop_set_ptr(dev, "chr-state", serial_hds[2]); + qdev_prop_set_ptr(dev, "chr-state", serial_hd(2)); qdev_init_nofail(dev); sysbus_mmio_map(busdev, 0, 0x10000000); sysbus_mmio_map(busdev, 1, 0x13e00000); diff --git a/hw/sh4/sh7750.c b/hw/sh4/sh7750.c index 166e4bd947..5a7d47d31e 100644 --- a/hw/sh4/sh7750.c +++ b/hw/sh4/sh7750.c @@ -773,7 +773,7 @@ SH7750State *sh7750_init(SuperHCPU *cpu, MemoryRegion *= sysmem) cpu->env.intc_handle =3D &s->intc; =20 sh_serial_init(sysmem, 0x1fe00000, - 0, s->periph_freq, serial_hds[0], + 0, s->periph_freq, serial_hd(0), s->intc.irqs[SCI1_ERI], s->intc.irqs[SCI1_RXI], s->intc.irqs[SCI1_TXI], @@ -781,7 +781,7 @@ SH7750State *sh7750_init(SuperHCPU *cpu, MemoryRegion *= sysmem) NULL); sh_serial_init(sysmem, 0x1fe80000, SH_SERIAL_FEAT_SCIF, - s->periph_freq, serial_hds[1], + s->periph_freq, serial_hd(1), s->intc.irqs[SCIF_ERI], s->intc.irqs[SCIF_RXI], s->intc.irqs[SCIF_TXI], diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c index bba3aa3dee..98fa6adae0 100644 --- a/hw/sparc/leon3.c +++ b/hw/sparc/leon3.c @@ -206,8 +206,8 @@ static void leon3_generic_hw_init(MachineState *machine) grlib_gptimer_create(0x80000300, 2, CPU_CLK, cpu_irqs, 6); =20 /* Allocate uart */ - if (serial_hds[0]) { - grlib_apbuart_create(0x80000100, serial_hds[0], cpu_irqs[3]); + if (serial_hd(0)) { + grlib_apbuart_create(0x80000100, serial_hd(0), cpu_irqs[3]); } } =20 diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 6471aca25d..0ee779fafe 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -943,8 +943,8 @@ static void sun4m_hw_init(const struct sun4m_hwdef *hwd= ef, qdev_prop_set_uint32(dev, "disabled", 0); qdev_prop_set_uint32(dev, "frequency", ESCC_CLOCK); qdev_prop_set_uint32(dev, "it_shift", 1); - qdev_prop_set_chr(dev, "chrB", serial_hds[1]); - qdev_prop_set_chr(dev, "chrA", serial_hds[0]); + qdev_prop_set_chr(dev, "chrB", serial_hd(1)); + qdev_prop_set_chr(dev, "chrA", serial_hd(0)); qdev_prop_set_uint32(dev, "chnBtype", escc_serial); qdev_prop_set_uint32(dev, "chnAtype", escc_serial); qdev_init_nofail(dev); diff --git a/hw/sparc64/niagara.c b/hw/sparc64/niagara.c index 1874477ef6..22c4655fde 100644 --- a/hw/sparc64/niagara.c +++ b/hw/sparc64/niagara.c @@ -156,9 +156,9 @@ static void niagara_init(MachineState *machine) exit(1); } } - if (serial_hds[0]) { + if (serial_hd(0)) { serial_mm_init(sysmem, NIAGARA_UART_BASE, 0, NULL, 115200, - serial_hds[0], DEVICE_BIG_ENDIAN); + serial_hd(0), DEVICE_BIG_ENDIAN); } empty_slot_init(NIAGARA_IOBBASE, NIAGARA_IOBSIZE); sun4v_rtc_init(NIAGARA_RTC_BASE); diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 2044a52ded..9b441f704b 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -295,7 +295,7 @@ static void ebus_realize(PCIDevice *pci_dev, Error **er= rp) i =3D 0; if (s->console_serial_base) { serial_mm_init(pci_address_space(pci_dev), s->console_serial_base, - 0, NULL, 115200, serial_hds[i], DEVICE_BIG_ENDIAN); + 0, NULL, 115200, serial_hd(i), DEVICE_BIG_ENDIAN); i++; } serial_hds_isa_init(s->isa_bus, i, MAX_SERIAL_PORTS); diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c index 5c0ba231d1..b6ccb3cd4a 100644 --- a/hw/xtensa/sim.c +++ b/hw/xtensa/sim.c @@ -90,8 +90,8 @@ static void xtensa_sim_init(MachineState *machine) get_system_memory()); } =20 - if (serial_hds[0]) { - xtensa_sim_open_console(serial_hds[0]); + if (serial_hd(0)) { + xtensa_sim_open_console(serial_hd(0)); } if (kernel_filename) { uint64_t elf_entry; diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index 9db99e1f7e..63734c70ec 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -279,7 +279,7 @@ static void xtfpga_init(const XtfpgaBoardDesc *board, M= achineState *machine) } =20 serial_mm_init(system_io, 0x0d050020, 2, xtensa_get_extint(env, 0), - 115200, serial_hds[0], DEVICE_NATIVE_ENDIAN); + 115200, serial_hd(0), DEVICE_NATIVE_ENDIAN); =20 dinfo =3D drive_get(IF_PFLASH, 0, 0); if (dinfo) { --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236458876209.00292734253162; Fri, 20 Apr 2018 08:00:58 -0700 (PDT) Received: from localhost ([::1]:35259 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XWy-0004gB-BE for importer@patchew.org; Fri, 20 Apr 2018 11:00:56 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43466) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPT-0006Ri-Pq for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPO-0007sH-T7 for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:11 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPO-0007mN-JM for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:06 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPE-0006aC-9z; Fri, 20 Apr 2018 15:52:56 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:44 +0100 Message-Id: <20180420145249.32435-9-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 08/13] Remove checks on MAX_SERIAL_PORTS that are just bounds checks X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Remove checks on MAX_SERIAL_PORTS that were just checking whether they were within bounds for the serial_hds[] array and falling back to NULL if not. This isn't needed with the serial_hd() function, which returns NULL for all indexes beyond what the user set up. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth --- hw/arm/fsl-imx25.c | 4 +--- hw/arm/fsl-imx31.c | 4 +--- hw/arm/fsl-imx6.c | 4 +--- hw/arm/fsl-imx7.c | 4 +--- hw/arm/mps2-tz.c | 3 +-- hw/arm/mps2.c | 6 ++---- hw/arm/stm32f205_soc.c | 3 +-- 7 files changed, 8 insertions(+), 20 deletions(-) diff --git a/hw/arm/fsl-imx25.c b/hw/arm/fsl-imx25.c index 9731833fa5..37056f9e34 100644 --- a/hw/arm/fsl-imx25.c +++ b/hw/arm/fsl-imx25.c @@ -117,9 +117,7 @@ static void fsl_imx25_realize(DeviceState *dev, Error *= *errp) { FSL_IMX25_UART5_ADDR, FSL_IMX25_UART5_IRQ } }; =20 - if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); - } + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)); =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); if (err) { diff --git a/hw/arm/fsl-imx31.c b/hw/arm/fsl-imx31.c index 8509915200..891850cf18 100644 --- a/hw/arm/fsl-imx31.c +++ b/hw/arm/fsl-imx31.c @@ -106,9 +106,7 @@ static void fsl_imx31_realize(DeviceState *dev, Error *= *errp) { FSL_IMX31_UART2_ADDR, FSL_IMX31_UART2_IRQ }, }; =20 - if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); - } + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)); =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); if (err) { diff --git a/hw/arm/fsl-imx6.c b/hw/arm/fsl-imx6.c index 535ad5888b..4f51bd9eb5 100644 --- a/hw/arm/fsl-imx6.c +++ b/hw/arm/fsl-imx6.c @@ -188,9 +188,7 @@ static void fsl_imx6_realize(DeviceState *dev, Error **= errp) { FSL_IMX6_UART5_ADDR, FSL_IMX6_UART5_IRQ }, }; =20 - if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); - } + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)); =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &e= rr); if (err) { diff --git a/hw/arm/fsl-imx7.c b/hw/arm/fsl-imx7.c index 2848d76d3c..26c1d27f7c 100644 --- a/hw/arm/fsl-imx7.c +++ b/hw/arm/fsl-imx7.c @@ -390,9 +390,7 @@ static void fsl_imx7_realize(DeviceState *dev, Error **= errp) }; =20 =20 - if (i < MAX_SERIAL_PORTS) { - qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)= ); - } + qdev_prop_set_chr(DEVICE(&s->uart[i]), "chardev", serial_hd(i)); =20 object_property_set_bool(OBJECT(&s->uart[i]), true, "realized", &error_abort); diff --git a/hw/arm/mps2-tz.c b/hw/arm/mps2-tz.c index 4ae4a5cb2a..8dc8bfd4ab 100644 --- a/hw/arm/mps2-tz.c +++ b/hw/arm/mps2-tz.c @@ -172,7 +172,6 @@ static MemoryRegion *make_uart(MPS2TZMachineState *mms,= void *opaque, { CMSDKAPBUART *uart =3D opaque; int i =3D uart - &mms->uart[0]; - Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hd(i) : NULL; int rxirqno =3D i * 2; int txirqno =3D i * 2 + 1; int combirqno =3D i + 10; @@ -182,7 +181,7 @@ static MemoryRegion *make_uart(MPS2TZMachineState *mms,= void *opaque, =20 init_sysbus_child(OBJECT(mms), name, uart, sizeof(mms->uart[0]), TYPE_CMSDK_APB_UART); - qdev_prop_set_chr(DEVICE(uart), "chardev", uartchr); + qdev_prop_set_chr(DEVICE(uart), "chardev", serial_hd(i)); qdev_prop_set_uint32(DEVICE(uart), "pclk-frq", SYSCLK_FRQ); object_property_set_bool(OBJECT(uart), true, "realized", &error_fatal); s =3D SYS_BUS_DEVICE(uart); diff --git a/hw/arm/mps2.c b/hw/arm/mps2.c index eb550fad34..c3946da317 100644 --- a/hw/arm/mps2.c +++ b/hw/arm/mps2.c @@ -230,7 +230,6 @@ static void mps2_common_init(MachineState *machine) static const hwaddr uartbase[] =3D {0x40004000, 0x40005000, 0x40006000, 0x40007000, 0x40009000}; - Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hd(i) : NUL= L; /* RX irq number; TX irq is always one greater */ static const int uartirq[] =3D {0, 2, 4, 18, 20}; qemu_irq txovrint =3D NULL, rxovrint =3D NULL; @@ -245,7 +244,7 @@ static void mps2_common_init(MachineState *machine) qdev_get_gpio_in(armv7m, uartirq[i]), txovrint, rxovrint, NULL, - uartchr, SYSCLK_FRQ); + serial_hd(i), SYSCLK_FRQ); } break; } @@ -270,7 +269,6 @@ static void mps2_common_init(MachineState *machine) static const hwaddr uartbase[] =3D {0x40004000, 0x40005000, 0x4002c000, 0x4002d000, 0x4002e000}; - Chardev *uartchr =3D i < MAX_SERIAL_PORTS ? serial_hd(i) : NUL= L; Object *txrx_orgate; DeviceState *txrx_orgate_dev; =20 @@ -287,7 +285,7 @@ static void mps2_common_init(MachineState *machine) qdev_get_gpio_in(orgate_dev, i * 2), qdev_get_gpio_in(orgate_dev, i * 2 + 1), NULL, - uartchr, SYSCLK_FRQ); + serial_hd(i), SYSCLK_FRQ); } break; } diff --git a/hw/arm/stm32f205_soc.c b/hw/arm/stm32f205_soc.c index f59418e7d0..2b2135d382 100644 --- a/hw/arm/stm32f205_soc.c +++ b/hw/arm/stm32f205_soc.c @@ -135,8 +135,7 @@ static void stm32f205_soc_realize(DeviceState *dev_soc,= Error **errp) /* Attach UART (uses USART registers) and USART controllers */ for (i =3D 0; i < STM_NUM_USARTS; i++) { dev =3D DEVICE(&(s->usart[i])); - qdev_prop_set_chr(dev, "chardev", - i < MAX_SERIAL_PORTS ? serial_hd(i) : NULL); + qdev_prop_set_chr(dev, "chardev", serial_hd(i)); object_property_set_bool(OBJECT(&s->usart[i]), true, "realized", &= err); if (err !=3D NULL) { error_propagate(errp, err); --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236339291427.4925151731769; Fri, 20 Apr 2018 07:58:59 -0700 (PDT) Received: from localhost ([::1]:35165 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XV4-0002mv-87 for importer@patchew.org; Fri, 20 Apr 2018 10:58:58 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43400) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPO-0006MD-LY for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPN-0007ro-SK for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:06 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPN-0007mN-KP for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:05 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPF-0006ay-3D; Fri, 20 Apr 2018 15:52:57 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:45 +0100 Message-Id: <20180420145249.32435-10-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 09/13] hw/char/exynos4210_uart.c: Remove unneeded handling of NULL chardev X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The handling of NULL chardevs in exynos4210_uart_create() is now all unnecessary: we don't need to create 'null' chardevs, and we don't need to enforce a bounds check on serial_hd(). Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth --- hw/char/exynos4210_uart.c | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index c2bba03362..a5a285655f 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -589,28 +589,8 @@ DeviceState *exynos4210_uart_create(hwaddr addr, DeviceState *dev; SysBusDevice *bus; =20 - const char chr_name[] =3D "serial"; - char label[ARRAY_SIZE(chr_name) + 1]; - dev =3D qdev_create(NULL, TYPE_EXYNOS4210_UART); =20 - if (!chr) { - if (channel >=3D MAX_SERIAL_PORTS) { - error_report("Only %d serial ports are supported by QEMU", - MAX_SERIAL_PORTS); - exit(1); - } - chr =3D serial_hd(channel); - if (!chr) { - snprintf(label, ARRAY_SIZE(label), "%s%d", chr_name, channel); - chr =3D qemu_chr_new(label, "null"); - if (!(chr)) { - error_report("Can't assign serial port to UART%d", channel= ); - exit(1); - } - } - } - qdev_prop_set_chr(dev, "chardev", chr); qdev_prop_set_uint32(dev, "channel", channel); qdev_prop_set_uint32(dev, "rx-size", fifo_size); --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236107191717.9971376268204; Fri, 20 Apr 2018 07:55:07 -0700 (PDT) Received: from localhost ([::1]:35140 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XRI-0007Zd-U9 for importer@patchew.org; Fri, 20 Apr 2018 10:55:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43326) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPK-0006JG-RH for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPJ-0007pD-Rz for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:02 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPJ-0007mN-KN for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:01 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPF-0006bT-QH; Fri, 20 Apr 2018 15:52:57 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:46 +0100 Message-Id: <20180420145249.32435-11-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 10/13] serial-isa: Use MAX_ISA_SERIAL_PORTS instead of MAX_SERIAL_PORTS X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The ISA serial port handling in serial-isa.c imposes a limit of 4 serial ports. This is because we only know of 4 IO port and IRQ settings for them, and is unrelated to the generic MAX_SERIAL_PORTS limit, though they happen to both be set at 4 currently. Use a new MAX_ISA_SERIAL_PORTS wherever that is the correct limit to be checking against. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Tested-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/char/serial.h | 3 +++ hw/char/serial-isa.c | 10 +++++----- hw/i386/pc.c | 2 +- hw/mips/mips_r4k.c | 2 +- hw/ppc/pnv.c | 2 +- hw/sparc64/sun4u.c | 2 +- 6 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include/hw/char/serial.h b/include/hw/char/serial.h index c4daf11a14..0acfbbc382 100644 --- a/include/hw/char/serial.h +++ b/include/hw/char/serial.h @@ -95,6 +95,9 @@ SerialState *serial_mm_init(MemoryRegion *address_space, Chardev *chr, enum device_endian end); =20 /* serial-isa.c */ + +#define MAX_ISA_SERIAL_PORTS 4 + #define TYPE_ISA_SERIAL "isa-serial" void serial_hds_isa_init(ISABus *bus, int from, int to); =20 diff --git a/hw/char/serial-isa.c b/hw/char/serial-isa.c index eb5996159d..116b7b2e69 100644 --- a/hw/char/serial-isa.c +++ b/hw/char/serial-isa.c @@ -39,10 +39,10 @@ typedef struct ISASerialState { SerialState state; } ISASerialState; =20 -static const int isa_serial_io[MAX_SERIAL_PORTS] =3D { +static const int isa_serial_io[MAX_ISA_SERIAL_PORTS] =3D { 0x3f8, 0x2f8, 0x3e8, 0x2e8 }; -static const int isa_serial_irq[MAX_SERIAL_PORTS] =3D { +static const int isa_serial_irq[MAX_ISA_SERIAL_PORTS] =3D { 4, 3, 4, 3 }; =20 @@ -56,9 +56,9 @@ static void serial_isa_realizefn(DeviceState *dev, Error = **errp) if (isa->index =3D=3D -1) { isa->index =3D index; } - if (isa->index >=3D MAX_SERIAL_PORTS) { + if (isa->index >=3D MAX_ISA_SERIAL_PORTS) { error_setg(errp, "Max. supported number of ISA serial ports is %d.= ", - MAX_SERIAL_PORTS); + MAX_ISA_SERIAL_PORTS); return; } if (isa->iobase =3D=3D -1) { @@ -138,7 +138,7 @@ void serial_hds_isa_init(ISABus *bus, int from, int to) int i; =20 assert(from >=3D 0); - assert(to <=3D MAX_SERIAL_PORTS); + assert(to <=3D MAX_ISA_SERIAL_PORTS); =20 for (i =3D from; i < to; ++i) { if (serial_hd(i)) { diff --git a/hw/i386/pc.c b/hw/i386/pc.c index d36bac8c89..b297a5d63b 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -1524,7 +1524,7 @@ static void pc_superio_init(ISABus *isa_bus, bool cre= ate_fdctrl, bool no_vmport) qemu_irq *a20_line; ISADevice *i8042, *port92, *vmmouse; =20 - serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS); + serial_hds_isa_init(isa_bus, 0, MAX_ISA_SERIAL_PORTS); parallel_hds_isa_init(isa_bus, MAX_PARALLEL_PORTS); =20 for (i =3D 0; i < MAX_FD; i++) { diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index aeadc4a340..e04b49d3c5 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -274,7 +274,7 @@ void mips_r4k_init(MachineState *machine) =20 pit =3D i8254_pit_init(isa_bus, 0x40, 0, NULL); =20 - serial_hds_isa_init(isa_bus, 0, MAX_SERIAL_PORTS); + serial_hds_isa_init(isa_bus, 0, MAX_ISA_SERIAL_PORTS); =20 isa_vga_init(isa_bus); =20 diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c index 98ee3c607a..549cfccdcb 100644 --- a/hw/ppc/pnv.c +++ b/hw/ppc/pnv.c @@ -648,7 +648,7 @@ static void pnv_init(MachineState *machine) pnv->isa_bus =3D pnv_isa_create(pnv->chips[0]); =20 /* Create serial port */ - serial_hds_isa_init(pnv->isa_bus, 0, MAX_SERIAL_PORTS); + serial_hds_isa_init(pnv->isa_bus, 0, MAX_ISA_SERIAL_PORTS); =20 /* Create an RTC ISA device too */ mc146818_rtc_init(pnv->isa_bus, 2000, NULL); diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 9b441f704b..1bede85370 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -298,7 +298,7 @@ static void ebus_realize(PCIDevice *pci_dev, Error **er= rp) 0, NULL, 115200, serial_hd(i), DEVICE_BIG_ENDIAN); i++; } - serial_hds_isa_init(s->isa_bus, i, MAX_SERIAL_PORTS); + serial_hds_isa_init(s->isa_bus, i, MAX_ISA_SERIAL_PORTS); =20 /* Parallel ports */ parallel_hds_isa_init(s->isa_bus, MAX_PARALLEL_PORTS); --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236111047549.0642856209356; Fri, 20 Apr 2018 07:55:11 -0700 (PDT) Received: from localhost ([::1]:35141 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XRO-0007fS-83 for importer@patchew.org; Fri, 20 Apr 2018 10:55:10 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPN-0006LF-N9 for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPM-0007rE-TL for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:05 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPM-0007mN-Mc for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:04 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPG-0006by-HM; Fri, 20 Apr 2018 15:52:58 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:47 +0100 Message-Id: <20180420145249.32435-12-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 11/13] superio: Don't use MAX_SERIAL_PORTS for serial port limit X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The superio device has a limit on the number of serial ports it supports which is really only there because it has a fixed-size array serial[]. This limit isn't related particularly to the global MAX_SERIAL_PORTS limit, so use a different #define for it. (In practice the users of superio only ever want 2 serial ports.) Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- include/hw/isa/superio.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/hw/isa/superio.h b/include/hw/isa/superio.h index f9ba29aa30..345f006081 100644 --- a/include/hw/isa/superio.h +++ b/include/hw/isa/superio.h @@ -22,13 +22,15 @@ #define ISA_SUPERIO_CLASS(klass) \ OBJECT_CLASS_CHECK(ISASuperIOClass, (klass), TYPE_ISA_SUPERIO) =20 +#define SUPERIO_MAX_SERIAL_PORTS 4 + typedef struct ISASuperIODevice { /*< private >*/ ISADevice parent_obj; /*< public >*/ =20 ISADevice *parallel[MAX_PARALLEL_PORTS]; - ISADevice *serial[MAX_SERIAL_PORTS]; + ISADevice *serial[SUPERIO_MAX_SERIAL_PORTS]; ISADevice *floppy; ISADevice *kbc; ISADevice *ide; --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 152423628805172.74622103610011; Fri, 20 Apr 2018 07:58:08 -0700 (PDT) Received: from localhost ([::1]:35162 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XUB-0001vu-VW for importer@patchew.org; Fri, 20 Apr 2018 10:58:04 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43371) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPM-0006KW-VP for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPL-0007qY-Vc for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:05 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPL-0007mN-GY for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:03 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPH-0006cF-8Y; Fri, 20 Apr 2018 15:52:59 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:48 +0100 Message-Id: <20180420145249.32435-13-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 12/13] vl.c: Remove compile time limit on number of serial ports X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Instead of having a fixed sized global serial_hds[] array, use a local dynamically reallocated one, so we don't have a compile time limit on how many serial ports a system has. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Tested-by: Philippe Mathieu-Daud=C3=A9 --- include/sysemu/sysemu.h | 2 -- vl.c | 15 +++++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index bd5b55c514..989cbc2b7b 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -161,8 +161,6 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QDic= t *qdict); =20 #define MAX_SERIAL_PORTS 4 =20 -extern Chardev *serial_hds[MAX_SERIAL_PORTS]; - /* Return the Chardev for serial port i, or NULL if none */ Chardev *serial_hd(int i); =20 diff --git a/vl.c b/vl.c index 6daf026da6..a8a98c5a37 100644 --- a/vl.c +++ b/vl.c @@ -154,7 +154,8 @@ QEMUClockType rtc_clock; int vga_interface_type =3D VGA_NONE; static DisplayOptions dpy; int no_frame; -Chardev *serial_hds[MAX_SERIAL_PORTS]; +static int num_serial_hds =3D 0; +static Chardev **serial_hds =3D NULL; Chardev *parallel_hds[MAX_PARALLEL_PORTS]; Chardev *virtcon_hds[MAX_VIRTIO_CONSOLES]; Chardev *sclp_hds[MAX_SCLP_CONSOLES]; @@ -2496,30 +2497,28 @@ static int foreach_device_config(int type, int (*fu= nc)(const char *cmdline)) =20 static int serial_parse(const char *devname) { - static int index =3D 0; + int index =3D num_serial_hds; char label[32]; =20 if (strcmp(devname, "none") =3D=3D 0) return 0; - if (index =3D=3D MAX_SERIAL_PORTS) { - error_report("too many serial ports"); - exit(1); - } snprintf(label, sizeof(label), "serial%d", index); + serial_hds =3D g_renew(Chardev *, serial_hds, index + 1); + serial_hds[index] =3D qemu_chr_new(label, devname); if (!serial_hds[index]) { error_report("could not connect serial device" " to character backend '%s'", devname); return -1; } - index++; + num_serial_hds++; return 0; } =20 Chardev *serial_hd(int i) { assert(i >=3D 0); - if (i < ARRAY_SIZE(serial_hds)) { + if (i < num_serial_hds) { return serial_hds[i]; } return NULL; --=20 2.17.0 From nobody Sun Apr 28 20:17:43 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1524236291148434.08882304676024; Fri, 20 Apr 2018 07:58:11 -0700 (PDT) Received: from localhost ([::1]:35163 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XUA-0001xL-Ac for importer@patchew.org; Fri, 20 Apr 2018 10:58:02 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43345) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1f9XPL-0006Jh-Hu for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1f9XPK-0007pY-Ps for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:03 -0400 Received: from orth.archaic.org.uk ([2001:8b0:1d0::2]:40996) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1f9XPK-0007mN-Iy for qemu-devel@nongnu.org; Fri, 20 Apr 2018 10:53:02 -0400 Received: from pm215 by orth.archaic.org.uk with local (Exim 4.89) (envelope-from ) id 1f9XPI-0006dC-97; Fri, 20 Apr 2018 15:53:00 +0100 From: Peter Maydell To: qemu-devel@nongnu.org Date: Fri, 20 Apr 2018 15:52:49 +0100 Message-Id: <20180420145249.32435-14-peter.maydell@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180420145249.32435-1-peter.maydell@linaro.org> References: <20180420145249.32435-1-peter.maydell@linaro.org> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2001:8b0:1d0::2 Subject: [Qemu-devel] [PATCH 13/13] vl.c: new function max_serial_hds() X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Paolo Bonzini , "Michael S . Tsirkin" , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , patches@linaro.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Create a new function max_serial_hds() which returns the number of serial ports defined by the user. This is needed only by spapr. This allows us to remove the MAX_SERIAL_PORTS define. Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Thomas Huth Tested-by: Philippe Mathieu-Daud=C3=A9 --- include/sysemu/sysemu.h | 6 ++++-- hw/ppc/spapr.c | 2 +- vl.c | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/include/sysemu/sysemu.h b/include/sysemu/sysemu.h index 989cbc2b7b..612659a718 100644 --- a/include/sysemu/sysemu.h +++ b/include/sysemu/sysemu.h @@ -159,10 +159,12 @@ void hmp_pcie_aer_inject_error(Monitor *mon, const QD= ict *qdict); =20 /* serial ports */ =20 -#define MAX_SERIAL_PORTS 4 - /* Return the Chardev for serial port i, or NULL if none */ Chardev *serial_hd(int i); +/* return the number of serial ports defined by the user. serial_hd(i) + * will always return NULL for any i which is greater than or equal to thi= s. + */ +int max_serial_hds(void); =20 /* parallel ports */ =20 diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b0ecfaca9e..8d2d36a606 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -2589,7 +2589,7 @@ static void spapr_machine_init(MachineState *machine) /* Set up VIO bus */ spapr->vio_bus =3D spapr_vio_bus_init(); =20 - for (i =3D 0; i < MAX_SERIAL_PORTS; i++) { + for (i =3D 0; i < max_serial_hds(); i++) { if (serial_hd(i)) { spapr_vty_create(spapr->vio_bus, serial_hd(i)); } diff --git a/vl.c b/vl.c index a8a98c5a37..b587187052 100644 --- a/vl.c +++ b/vl.c @@ -2524,6 +2524,11 @@ Chardev *serial_hd(int i) return NULL; } =20 +int max_serial_hds(void) +{ + return num_serial_hds; +} + static int parallel_parse(const char *devname) { static int index =3D 0; --=20 2.17.0