From: Igor Mammedov <imammedo@redhat.com>
To: Marcel Apfelbaum <marcel.a@redhat.com>
Cc: mst@redhat.com, aik@ozlabs.ru, qemu-devel@nongnu.org,
lcapitulino@redhat.com, blauwirbel@gmail.com, jcmvbkbc@gmail.com,
edgar.iglesias@gmail.com, gxt@mprc.pku.edu.cn,
peter.chubb@nicta.com.au, proljc@gmail.com, agraf@suse.de,
scottwood@freescale.com, borntraeger@de.ibm.com,
hpoussin@reactos.org, aliguori@amazon.com, lersek@redhat.com,
mdroth@linux.vnet.ibm.com, chouteau@adacore.com,
jan.kiszka@web.de, stefanha@redhat.com, cornelia.huck@de.ibm.com,
peter.crosthwaite@xilinx.com, mark.langsdorf@calxeda.com,
armbru@redhat.com, michael@walle.cc, qemu-ppc@nongnu.org,
pbonzini@redhat.com, afaerber@suse.de, aurelien@aurel32.net
Subject: Re: [Qemu-devel] [PATCH 1/4] machine: conversion of QEMUMachineInitArgs to MachineState
Date: Fri, 16 May 2014 16:39:59 +0200 [thread overview]
Message-ID: <20140516163959.7583df51@thinkpad> (raw)
In-Reply-To: <1399473780-20374-2-git-send-email-marcel.a@redhat.com>
On Wed, 7 May 2014 17:42:57 +0300
Marcel Apfelbaum <marcel.a@redhat.com> wrote:
> Total removal of QEMUMachineInitArgs struct. QEMUMachineInitArgs's fields
> are copied into MachineState. Removed duplicated fields from MachineState.
>
> All the other changes are only mechanical refactoring, no semantic changes.
>
> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
> ---
> - I am perfectly aware that patches touching a lot of files
> are not desirable, but this one is a very simple replacement
> patch:
> QEMUMachineInitArgs -> MachineState
> args -> ms
> - This is the simplest way to get rid of QEMUMachineInitArgs fast.
>
Patch doesn't apply cleanly on current master
[...]
>
> #define PC_Q35_MACHINE_OPTIONS \
> diff --git a/hw/i386/xen_machine_pv.c b/hw/i386/xen_machine_pv.c
> index 9adb57f..fb7a817 100644
> --- a/hw/i386/xen_machine_pv.c
> +++ b/hw/i386/xen_machine_pv.c
> @@ -28,11 +28,11 @@
^^^ file was moved
> #include "xen_domainbuild.h"
> #include "sysemu/blockdev.h"
>
> -static void xen_init_pv(QEMUMachineInitArgs *args)
> +static void xen_init_pv(MachineState *ms)
> {
> - const char *kernel_filename = args->kernel_filename;
> - const char *kernel_cmdline = args->kernel_cmdline;
> - const char *initrd_filename = args->initrd_filename;
> + const char *kernel_filename = ms->kernel_filename;
> + const char *kernel_cmdline = ms->kernel_cmdline;
> + const char *initrd_filename = ms->initrd_filename;
> DriveInfo *dinfo;
> int i;
>
[...]
> diff --git a/include/hw/boards.h b/include/hw/boards.h
> index 28f0047..eba0574 100644
> --- a/include/hw/boards.h
> +++ b/include/hw/boards.h
> @@ -7,17 +7,10 @@
> #include "hw/qdev.h"
> #include "qom/object.h"
>
> -typedef struct QEMUMachineInitArgs {
> - const MachineClass *machine;
> - ram_addr_t ram_size;
> - const char *boot_order;
> - const char *kernel_filename;
> - const char *kernel_cmdline;
> - const char *initrd_filename;
> - const char *cpu_model;
> -} QEMUMachineInitArgs;
>
> -typedef void QEMUMachineInitFunc(QEMUMachineInitArgs *args);
> +typedef struct MachineState MachineState;
> +
> +typedef void QEMUMachineInitFunc(MachineState *ms);
>
> typedef void QEMUMachineResetFunc(void);
>
> @@ -61,8 +54,6 @@ int qemu_register_machine(QEMUMachine *m);
> #define MACHINE_CLASS(klass) \
> OBJECT_CLASS_CHECK(MachineClass, (klass), TYPE_MACHINE)
>
> -typedef struct MachineState MachineState;
> -
> MachineClass *find_default_machine(void);
> extern MachineState *current_machine;
>
> @@ -79,7 +70,7 @@ struct MachineClass {
> const char *alias;
> const char *desc;
>
> - void (*init)(QEMUMachineInitArgs *args);
> + void (*init)(MachineState *state);
> void (*reset)(void);
> void (*hot_add_cpu)(const int64_t id, Error **errp);
> int (*kvm_type)(const char *arg);
> @@ -111,9 +102,6 @@ struct MachineState {
> char *accel;
> bool kernel_irqchip;
> int kvm_shadow_mem;
> - char *kernel;
> - char *initrd;
> - char *append;
> char *dtb;
> char *dumpdtb;
> int phandle_start;
> @@ -123,7 +111,13 @@ struct MachineState {
> bool usb;
> char *firmware;
>
> - QEMUMachineInitArgs init_args;
> + const MachineClass *machine;
Why not drop ^^^? User should use MACHINE_GET_CLASS() instead.
Like this:
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index 4fbdaaa..1bedb09 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -145,9 +145,10 @@ static void pc_init1(MachineState *ms,
guest_info->isapc_ram_fw = !pci_enabled;
if (smbios_defaults) {
+ MachineClass *mc = MACHINE_GET_CLASS(ms);
/* These values are guest ABI, do not change */
smbios_set_defaults("QEMU", "Standard PC (i440FX + PIIX, 1996)",
- ms->machine->name, smbios_legacy_mode);
+ mc->name, smbios_legacy_mode);
}
/* allocate ram and load rom/bios */
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 315cfe5..df13a9e 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -132,9 +132,10 @@ static void pc_q35_init(MachineState *ms)
guest_info->has_acpi_build = has_acpi_build;
if (smbios_defaults) {
+ MachineClass *mc = MACHINE_GET_CLASS(ms);
/* These values are guest ABI, do not change */
smbios_set_defaults("QEMU", "Standard PC (Q35 + ICH9, 2009)",
- ms->machine->name, smbios_legacy_mode);
+ mc->name, smbios_legacy_mode);
}
/* allocate ram and load rom/bios */
diff --git a/include/hw/boards.h b/include/hw/boards.h
index 789a0c2..b62de4a 100644
--- a/include//
+++ b/include/hw/boards.h
@@ -112,7 +112,6 @@ struct MachineState {
bool usb;
char *firmware;
- const MachineClass *machine;
ram_addr_t ram_size;
const char *boot_order;
const char *kernel_filename;
diff --git a/vl.c b/vl.c
index 211efec..2de90fb 100644
--- a/vl.c
+++ b/vl.c
@@ -4420,7 +4420,6 @@ int main(int argc, char **argv, char **envp)
qdev_machine_init();
- current_machine->machine = machine_class;
current_machine->ram_size = ram_size;
current_machine->boot_order = boot_order;
current_machine->kernel_filename = kernel_filename;
> + ram_addr_t ram_size;
> + const char *boot_order;
> + const char *kernel_filename;
> + const char *kernel_cmdline;
> + const char *initrd_filename;
> + const char *cpu_model;
> };
>
> #endif
I've reviewed all targets, it looks good.
+1 to afaerber's comment s/ms/machine/
--
Regards,
Igor
next prev parent reply other threads:[~2014-05-16 15:13 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-07 14:42 [Qemu-devel] [Qemu-detvel] [PATCH 0/4] machine: QemuOpts per machine Marcel Apfelbaum
2014-05-07 14:42 ` [Qemu-devel] [PATCH 1/4] machine: conversion of QEMUMachineInitArgs to MachineState Marcel Apfelbaum
2014-05-12 16:00 ` Laszlo Ersek
2014-05-13 13:25 ` Cornelia Huck
2014-05-13 15:44 ` Michael S. Tsirkin
2014-05-13 17:34 ` Andreas Färber
2014-05-15 15:04 ` Markus Armbruster
2014-05-18 8:37 ` Marcel Apfelbaum
2014-05-16 14:39 ` Igor Mammedov [this message]
2014-05-16 18:33 ` Andreas Färber
2014-05-18 8:51 ` Marcel Apfelbaum
2014-05-16 16:20 ` Igor Mammedov
2014-05-16 18:38 ` Andreas Färber
2014-05-18 8:48 ` Marcel Apfelbaum
2014-05-07 14:42 ` [Qemu-devel] [PATCH 2/4] qapi: output visitor crashes qemu if it encounters a NULL value Marcel Apfelbaum
2014-05-13 17:36 ` Andreas Färber
2014-05-13 19:08 ` Eric Blake
2014-05-14 17:00 ` Andreas Färber
2014-05-14 17:29 ` Marcel Apfelbaum
2014-05-14 18:25 ` Luiz Capitulino
2014-05-14 19:51 ` Markus Armbruster
2014-05-14 20:38 ` Michael Roth
2014-05-18 8:42 ` Marcel Apfelbaum
2014-05-14 20:26 ` Andreas Färber
2014-05-15 16:13 ` Markus Armbruster
2014-05-15 16:27 ` Michael Roth
2014-05-15 17:19 ` Markus Armbruster
2014-05-15 17:55 ` Michael Roth
2014-05-07 14:42 ` [Qemu-devel] [PATCH 3/4] vl.c: do not set 'type' property in obj_set_property Marcel Apfelbaum
2014-05-13 17:39 ` Andreas Färber
2014-05-15 16:15 ` Markus Armbruster
2014-05-15 16:38 ` Andreas Färber
2014-05-15 17:13 ` Paolo Bonzini
2014-05-07 14:43 ` [Qemu-devel] [PATCH 4/4] hw/machine: qemu machine opts as properties to QemuMachineState Marcel Apfelbaum
2014-05-13 17:54 ` Andreas Färber
2014-05-13 13:13 ` [Qemu-devel] [Qemu-detvel] [PATCH 0/4] machine: QemuOpts per machine Marcel Apfelbaum
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140516163959.7583df51@thinkpad \
--to=imammedo@redhat.com \
--cc=afaerber@suse.de \
--cc=agraf@suse.de \
--cc=aik@ozlabs.ru \
--cc=aliguori@amazon.com \
--cc=armbru@redhat.com \
--cc=aurelien@aurel32.net \
--cc=blauwirbel@gmail.com \
--cc=borntraeger@de.ibm.com \
--cc=chouteau@adacore.com \
--cc=cornelia.huck@de.ibm.com \
--cc=edgar.iglesias@gmail.com \
--cc=gxt@mprc.pku.edu.cn \
--cc=hpoussin@reactos.org \
--cc=jan.kiszka@web.de \
--cc=jcmvbkbc@gmail.com \
--cc=lcapitulino@redhat.com \
--cc=lersek@redhat.com \
--cc=marcel.a@redhat.com \
--cc=mark.langsdorf@calxeda.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=michael@walle.cc \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=peter.chubb@nicta.com.au \
--cc=peter.crosthwaite@xilinx.com \
--cc=proljc@gmail.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=scottwood@freescale.com \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).