[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types i
From: |
Laszlo Ersek |
Subject: |
[Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order |
Date: |
Mon, 22 Sep 2014 13:26:35 +0200 |
Based on the registration order captured in the previous patch, we sort
the ad-hoc list printed for
qemu-system-XXXX -M \?
The GLib documentation is not overly clear if g_slist_sort() allocates a
new list or reorders the input list in place, but:
- it slightly suggests the latter,
- and there is prior use in qemu that is consistent with the latter:
g_slist_sort() in qdev_print_devinfos() [qdev-monitor.c] sorts the
return value of object_class_get_list() the same as we do here in
machine_parse().
The patch has the following effect on the x86_64 output:
Before:
> Supported machines are:
> pc-0.13 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)
> pc-1.0 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)
> pc-q35-1.7 Standard PC (Q35 + ICH9, 2009)
> pc-1.1 Standard PC (i440FX + PIIX, 1996)
> pc-0.14 Standard PC (i440FX + PIIX, 1996)
> pc-q35-2.0 Standard PC (Q35 + ICH9, 2009)
> pc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996)
> pc-0.15 Standard PC (i440FX + PIIX, 1996)
> pc-q35-1.4 Standard PC (Q35 + ICH9, 2009)
> isapc ISA-only PC
> pc Standard PC (i440FX + PIIX, 1996) (alias of
> pc-i440fx-2.2)
> pc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996) (default)
> pc-1.2 Standard PC (i440FX + PIIX, 1996)
> pc-0.10 Standard PC (i440FX + PIIX, 1996)
> pc-0.11 Standard PC (i440FX + PIIX, 1996)
> pc-q35-2.1 Standard PC (Q35 + ICH9, 2009)
> q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-2.2)
> pc-q35-2.2 Standard PC (Q35 + ICH9, 2009)
> pc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996)
> none empty machine
> pc-q35-1.5 Standard PC (Q35 + ICH9, 2009)
> pc-q35-1.6 Standard PC (Q35 + ICH9, 2009)
> pc-0.12 Standard PC (i440FX + PIIX, 1996)
> pc-1.3 Standard PC (i440FX + PIIX, 1996)
After:
> Supported machines are:
> pc Standard PC (i440FX + PIIX, 1996) (alias of
> pc-i440fx-2.2)
> pc-i440fx-2.2 Standard PC (i440FX + PIIX, 1996) (default)
> pc-i440fx-2.1 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-2.0 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-1.7 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-1.6 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-1.5 Standard PC (i440FX + PIIX, 1996)
> pc-i440fx-1.4 Standard PC (i440FX + PIIX, 1996)
> pc-1.3 Standard PC (i440FX + PIIX, 1996)
> pc-1.2 Standard PC (i440FX + PIIX, 1996)
> pc-1.1 Standard PC (i440FX + PIIX, 1996)
> pc-1.0 Standard PC (i440FX + PIIX, 1996)
> pc-0.15 Standard PC (i440FX + PIIX, 1996)
> pc-0.14 Standard PC (i440FX + PIIX, 1996)
> pc-0.13 Standard PC (i440FX + PIIX, 1996)
> pc-0.12 Standard PC (i440FX + PIIX, 1996)
> pc-0.11 Standard PC (i440FX + PIIX, 1996)
> pc-0.10 Standard PC (i440FX + PIIX, 1996)
> isapc ISA-only PC
> q35 Standard PC (Q35 + ICH9, 2009) (alias of pc-q35-2.2)
> pc-q35-2.2 Standard PC (Q35 + ICH9, 2009)
> pc-q35-2.1 Standard PC (Q35 + ICH9, 2009)
> pc-q35-2.0 Standard PC (Q35 + ICH9, 2009)
> pc-q35-1.7 Standard PC (Q35 + ICH9, 2009)
> pc-q35-1.6 Standard PC (Q35 + ICH9, 2009)
> pc-q35-1.5 Standard PC (Q35 + ICH9, 2009)
> pc-q35-1.4 Standard PC (Q35 + ICH9, 2009)
> none empty machine
On the aarch64 output:
Before:
> Supported machines are:
> lm3s811evb Stellaris LM3S811EVB
> canon-a1100 Canon PowerShot A1100 IS
> vexpress-a15 ARM Versatile Express for Cortex-A15
> vexpress-a9 ARM Versatile Express for Cortex-A9
> xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9
> connex Gumstix Connex (PXA255)
> n800 Nokia N800 tablet aka. RX-34 (OMAP2420)
> lm3s6965evb Stellaris LM3S6965EVB
> versatileab ARM Versatile/AB (ARM926EJ-S)
> borzoi Borzoi PDA (PXA270)
> tosa Tosa PDA (PXA255)
> cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310)
> midway Calxeda Midway (ECX-2000)
> mainstone Mainstone II (PXA27x)
> n810 Nokia N810 tablet aka. RX-44 (OMAP2420)
> terrier Terrier PDA (PXA270)
> highbank Calxeda Highbank (ECX-1000)
> cubieboard cubietech cubieboard
> sx1-v1 Siemens SX1 (OMAP310) V1
> sx1 Siemens SX1 (OMAP310) V2
> realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
> kzm ARM KZM Emulation Baseboard (ARM1136)
> akita Akita PDA (PXA270)
> z2 Zipit Z2 (PXA27x)
> musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
> realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
> versatilepb ARM Versatile/PB (ARM926EJ-S)
> realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
> realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
> spitz Spitz PDA (PXA270)
> none empty machine
> virt ARM Virtual Machine
> collie Collie PDA (SA-1110)
> smdkc210 Samsung SMDKC210 board (Exynos4210)
> verdex Gumstix Verdex (PXA270)
> nuri Samsung NURI board (Exynos4210)
> integratorcp ARM Integrator/CP (ARM926EJ-S)
After:
> Supported machines are:
> collie Collie PDA (SA-1110)
> nuri Samsung NURI board (Exynos4210)
> smdkc210 Samsung SMDKC210 board (Exynos4210)
> connex Gumstix Connex (PXA255)
> verdex Gumstix Verdex (PXA270)
> highbank Calxeda Highbank (ECX-1000)
> midway Calxeda Midway (ECX-2000)
> canon-a1100 Canon PowerShot A1100 IS
> integratorcp ARM Integrator/CP (ARM926EJ-S)
> kzm ARM KZM Emulation Baseboard (ARM1136)
> mainstone Mainstone II (PXA27x)
> musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S)
> n800 Nokia N800 tablet aka. RX-34 (OMAP2420)
> n810 Nokia N810 tablet aka. RX-44 (OMAP2420)
> sx1 Siemens SX1 (OMAP310) V2
> sx1-v1 Siemens SX1 (OMAP310) V1
> cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310)
> realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S)
> realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore)
> realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8
> realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9
> akita Akita PDA (PXA270)
> spitz Spitz PDA (PXA270)
> borzoi Borzoi PDA (PXA270)
> terrier Terrier PDA (PXA270)
> lm3s811evb Stellaris LM3S811EVB
> lm3s6965evb Stellaris LM3S6965EVB
> tosa Tosa PDA (PXA255)
> versatilepb ARM Versatile/PB (ARM926EJ-S)
> versatileab ARM Versatile/AB (ARM926EJ-S)
> vexpress-a9 ARM Versatile Express for Cortex-A9
> vexpress-a15 ARM Versatile Express for Cortex-A15
> virt ARM Virtual Machine
> xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9
> z2 Zipit Z2 (PXA27x)
> cubieboard cubietech cubieboard
> none empty machine
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1145042
Signed-off-by: Laszlo Ersek <address@hidden>
---
vl.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/vl.c b/vl.c
index b62d9b2..00c7dab 100644
--- a/vl.c
+++ b/vl.c
@@ -2652,6 +2652,15 @@ static int debugcon_parse(const char *devname)
return 0;
}
+static gint machine_class_cmp(gconstpointer a, gconstpointer b)
+{
+ const MachineClass *mc1 = a, *mc2 = b;
+
+ return mc1->registration_order < mc2->registration_order ? -1 :
+ mc1->registration_order > mc2->registration_order ? 1 :
+ 0;
+}
+
static MachineClass *machine_parse(const char *name)
{
MachineClass *mc = NULL;
@@ -2668,6 +2677,7 @@ static MachineClass *machine_parse(const char *name)
error_printf("Use -machine help to list supported machines!\n");
} else {
printf("Supported machines are:\n");
+ machines = g_slist_sort(machines, machine_class_cmp);
for (el = machines; el; el = el->next) {
MachineClass *mc = el->data;
if (mc->alias) {
--
1.8.3.1
- [Qemu-devel] [PATCH 0/2] list supported machine types in their registration order, Laszlo Ersek, 2014/09/22
- [Qemu-devel] [PATCH 1/2] save registration order of machine types, Laszlo Ersek, 2014/09/22
- [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order,
Laszlo Ersek <=
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Andreas Färber, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Michael S. Tsirkin, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Laszlo Ersek, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Michael S. Tsirkin, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Marcel Apfelbaum, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Laszlo Ersek, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Marcel Apfelbaum, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Laszlo Ersek, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Paolo Bonzini, 2014/09/22
- Re: [Qemu-devel] [PATCH 2/2] machine_parse(): list supported machine types in their registration order, Andreas Färber, 2014/09/22