]> git.proxmox.com Git - mirror_qemu.git/commitdiff
serial: Factor out common serial_hds_isa_init()
authorMarkus Armbruster <armbru@redhat.com>
Wed, 4 Feb 2015 17:33:05 +0000 (18:33 +0100)
committerAndreas Färber <afaerber@suse.de>
Mon, 23 Feb 2015 23:19:06 +0000 (00:19 +0100)
It's the same old loop copied five times, plus another instance where
it's clipped to two iterations and unrolled.

No external users of serial_isa_init() are left, so give it internal
linkage.

Maintainers of affected machines cc'ed.

Cc: Richard Henderson <rth@twiddle.net>
Cc: Anthony Liguori <aliguori@amazon.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Leon Alrae <leon.alrae@imgtec.com>
Cc: Blue Swirl <blauwirbel@gmail.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Andreas Färber <afaerber@suse.de>
hw/alpha/dp264.c
hw/char/serial-isa.c
hw/i386/pc.c
hw/mips/mips_fulong2e.c
hw/mips/mips_malta.c
hw/mips/mips_r4k.c
hw/sparc64/sun4u.c
include/hw/char/serial.h

index 84a55e41a2b61a76627b2deaeca912fe30487b2f..e82d61d28c6915b3f71851be9edf35325becb665 100644 (file)
@@ -83,11 +83,7 @@ static void clipper_init(MachineState *machine)
     pci_vga_init(pci_bus);
 
     /* Serial code setup.  */
-    for (i = 0; i < MAX_SERIAL_PORTS; ++i) {
-        if (serial_hds[i]) {
-            serial_isa_init(isa_bus, i, serial_hds[i]);
-        }
-    }
+    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);
 
     /* Network setup.  e1000 is good enough, failing Tulip support.  */
     for (i = 0; i < nb_nics; i++) {
index c9fcb2761fec488f7ff073eb89d7999dad04b10d..059ceb8b5f7011fc2a80b74d3596b40699f20afc 100644 (file)
@@ -119,7 +119,7 @@ static void serial_register_types(void)
 
 type_init(serial_register_types)
 
-bool serial_isa_init(ISABus *bus, int index, CharDriverState *chr)
+static bool serial_isa_init(ISABus *bus, int index, CharDriverState *chr)
 {
     DeviceState *dev;
     ISADevice *isadev;
@@ -136,3 +136,16 @@ bool serial_isa_init(ISABus *bus, int index, CharDriverState *chr)
     }
     return true;
 }
+
+void serial_hds_isa_init(ISABus *bus, int n)
+{
+    int i;
+
+    assert(n <= MAX_SERIAL_PORTS);
+
+    for (i = 0; i < n; ++i) {
+        if (serial_hds[i]) {
+            serial_isa_init(bus, i, serial_hds[i]);
+        }
+    }
+}
index c7af6aae01843a594b4f6230e77dbccc496dac16..18ed2634f3748dbe6a4461ae79f2305ed1a8cc50 100644 (file)
@@ -1419,11 +1419,7 @@ void pc_basic_device_init(ISABus *isa_bus, qemu_irq *gsi,
         pcspk_init(isa_bus, pit);
     }
 
-    for(i = 0; i < MAX_SERIAL_PORTS; i++) {
-        if (serial_hds[i]) {
-            serial_isa_init(isa_bus, i, serial_hds[i]);
-        }
-    }
+    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);
 
     for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
         if (parallel_hds[i]) {
index 6a9ebfa91161c798b86c4702096e8738b414f497..bebf7defbe30c0dddac0c6f74a9751946570a592 100644 (file)
@@ -277,7 +277,6 @@ static void mips_fulong2e_init(MachineState *machine)
     PCIBus *pci_bus;
     ISABus *isa_bus;
     I2CBus *smbus;
-    int i;
     DriveInfo *hd[MAX_IDE_BUS * MAX_IDE_DEVS];
     MIPSCPU *cpu;
     CPUMIPSState *env;
@@ -384,11 +383,7 @@ static void mips_fulong2e_init(MachineState *machine)
 
     rtc_init(isa_bus, 2000, NULL);
 
-    for(i = 0; i < MAX_SERIAL_PORTS; i++) {
-        if (serial_hds[i]) {
-            serial_isa_init(isa_bus, i, serial_hds[i]);
-        }
-    }
+    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);
 
     if (parallel_hds[0]) {
         parallel_init(isa_bus, 0, parallel_hds[0]);
index 5845158a740c64bbdc6580ff71fc2f25e518785b..e57f78c1e5bb20626dea1fee5726a4309ce85b84 100644 (file)
@@ -1172,8 +1172,7 @@ void mips_malta_init(MachineState *machine)
     isa_create_simple(isa_bus, "i8042");
 
     rtc_init(isa_bus, 2000, NULL);
-    serial_isa_init(isa_bus, 0, serial_hds[0]);
-    serial_isa_init(isa_bus, 1, serial_hds[1]);
+    serial_hds_isa_init(isa_bus, 2);
     if (parallel_hds[0])
         parallel_init(isa_bus, 0, parallel_hds[0]);
     for(i = 0; i < MAX_FD; i++) {
index a7fe0ceadfb8ea61574e90b9e3ba5687aae0f82b..1698f2def2711a4fc67b8ce0c2541fb4bf742fe3 100644 (file)
@@ -283,11 +283,7 @@ void mips_r4k_init(MachineState *machine)
 
     pit = pit_init(isa_bus, 0x40, 0, NULL);
 
-    for(i = 0; i < MAX_SERIAL_PORTS; i++) {
-        if (serial_hds[i]) {
-            serial_isa_init(isa_bus, i, serial_hds[i]);
-        }
-    }
+    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);
 
     isa_vga_init(isa_bus);
 
index 3ff5bd88718cc7613b31bceb13872e2338656370..082b8e0eb39b969ecaab7d57a3bcd9da296f4cd7 100644 (file)
@@ -849,11 +849,8 @@ static void sun4uv_init(MemoryRegion *address_space_mem,
                        NULL, 115200, serial_hds[i], DEVICE_BIG_ENDIAN);
         i++;
     }
-    for(; i < MAX_SERIAL_PORTS; i++) {
-        if (serial_hds[i]) {
-            serial_isa_init(isa_bus, i, serial_hds[i]);
-        }
-    }
+
+    serial_hds_isa_init(isa_bus, MAX_SERIAL_PORTS);
 
     for(i = 0; i < MAX_PARALLEL_PORTS; i++) {
         if (parallel_hds[i]) {
index f431764bf5f14a841660d12cc6c183dc31df2424..15beb6b45c5ab8753ff5b784b99dc175792b4188 100644 (file)
@@ -92,6 +92,6 @@ SerialState *serial_mm_init(MemoryRegion *address_space,
 
 /* serial-isa.c */
 #define TYPE_ISA_SERIAL "isa-serial"
-bool serial_isa_init(ISABus *bus, int index, CharDriverState *chr);
+void serial_hds_isa_init(ISABus *bus, int n);
 
 #endif