diff options
author | Andrew Jones <drjones@redhat.com> | 2017-01-09 11:40:22 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2017-01-09 11:40:22 +0000 |
commit | 054f4dc961490b81139304106e4312c356303a6f (patch) | |
tree | 8435fb4015aeb87b14149fe5322400d61669ab35 | |
parent | 055a7f2b0aefdd6b75bf2866171c4fe11f9a9e00 (diff) | |
download | qemu-054f4dc961490b81139304106e4312c356303a6f.zip qemu-054f4dc961490b81139304106e4312c356303a6f.tar.gz qemu-054f4dc961490b81139304106e4312c356303a6f.tar.bz2 |
hw/arm/virt: eliminate struct VirtGuestInfoState
Instead of allocating a new struct just for VirtGuestInfo and the
machine_done Notifier, place them inside VirtMachineState. This
is the mach-virt equivalent of "pc: Eliminate struct
PcGuestInfoState"
Suggested-by: Eduardo Habkost <ehabkost@redhat.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Message-id: 20170102200153.28864-8-drjones@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | hw/arm/virt.c | 20 | ||||
-rw-r--r-- | include/hw/arm/virt-acpi-build.h | 6 |
2 files changed, 11 insertions, 15 deletions
diff --git a/hw/arm/virt.c b/hw/arm/virt.c index 8ba50ad..9b55ef0 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -76,6 +76,8 @@ typedef struct { typedef struct { MachineState parent; + VirtGuestInfo acpi_guest_info; + Notifier machine_done; bool secure; bool highmem; int32_t gic_version; @@ -1197,12 +1199,13 @@ static void virt_build_smbios(VirtGuestInfo *guest_info) } static -void virt_guest_info_machine_done(Notifier *notifier, void *data) +void virt_machine_done(Notifier *notifier, void *data) { - VirtGuestInfoState *guest_info_state = container_of(notifier, - VirtGuestInfoState, machine_done); - virt_acpi_setup(&guest_info_state->info); - virt_build_smbios(&guest_info_state->info); + VirtMachineState *vms = container_of(notifier, VirtMachineState, + machine_done); + + virt_acpi_setup(&vms->acpi_guest_info); + virt_build_smbios(&vms->acpi_guest_info); } static void machvirt_init(MachineState *machine) @@ -1215,8 +1218,7 @@ static void machvirt_init(MachineState *machine) int n, virt_max_cpus; MemoryRegion *ram = g_new(MemoryRegion, 1); const char *cpu_model = machine->cpu_model; - VirtGuestInfoState *guest_info_state = g_malloc0(sizeof *guest_info_state); - VirtGuestInfo *guest_info = &guest_info_state->info; + VirtGuestInfo *guest_info = &vms->acpi_guest_info; char **cpustr; ObjectClass *oc; const char *typename; @@ -1415,8 +1417,8 @@ static void machvirt_init(MachineState *machine) guest_info->use_highmem = vms->highmem; guest_info->gic_version = vms->gic_version; guest_info->no_its = vmc->no_its; - guest_info_state->machine_done.notify = virt_guest_info_machine_done; - qemu_add_machine_init_done_notifier(&guest_info_state->machine_done); + vms->machine_done.notify = virt_machine_done; + qemu_add_machine_init_done_notifier(&vms->machine_done); vms->bootinfo.ram_size = machine->ram_size; vms->bootinfo.kernel_filename = machine->kernel_filename; diff --git a/include/hw/arm/virt-acpi-build.h b/include/hw/arm/virt-acpi-build.h index 2bcd222..925c434 100644 --- a/include/hw/arm/virt-acpi-build.h +++ b/include/hw/arm/virt-acpi-build.h @@ -34,12 +34,6 @@ typedef struct VirtGuestInfo { bool no_its; } VirtGuestInfo; - -typedef struct VirtGuestInfoState { - VirtGuestInfo info; - Notifier machine_done; -} VirtGuestInfoState; - void virt_acpi_setup(VirtGuestInfo *guest_info); #endif |