Message ID | 20161213214522.25548-9-drjones@redhat.com |
---|---|
State | Superseded |
Headers | show |
On Tue, 13 Dec 2016 22:45:19 +0100 Andrew Jones <drjones@redhat.com> wrote: > Now that we pass VirtMachineState, and guest-info is just part of > that state, we can remove all the redundant members and access > the VirtMachineState directly. > > Signed-off-by: Andrew Jones <drjones@redhat.com> Reviewed-by: Igor Mammedov <imammedo@redhat.com> > --- > hw/arm/virt-acpi-build.c | 72 +++++++++++++++++++++++++----------------------- > hw/arm/virt.c | 6 ---- > include/hw/arm/virt.h | 6 ---- > 3 files changed, 37 insertions(+), 47 deletions(-) > > diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c > index f7ce6aeed307..7a1efd0dc538 100644 > --- a/hw/arm/virt-acpi-build.c > +++ b/hw/arm/virt-acpi-build.c > @@ -384,7 +384,7 @@ build_rsdp(GArray *rsdp_table, BIOSLinker *linker, unsigned rsdt_tbl_offset) > } > > static void > -build_iort(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > +build_iort(GArray *table_data, BIOSLinker *linker) > { > int iort_start = table_data->len; > AcpiIortIdMapping *idmap; > @@ -439,11 +439,11 @@ build_iort(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > } > > static void > -build_spcr(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > +build_spcr(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > { > AcpiSerialPortConsoleRedirection *spcr; > - const MemMapEntry *uart_memmap = &guest_info->memmap[VIRT_UART]; > - int irq = guest_info->irqmap[VIRT_UART] + ARM_SPI_BASE; > + const MemMapEntry *uart_memmap = &vms->memmap[VIRT_UART]; > + int irq = vms->irqmap[VIRT_UART] + ARM_SPI_BASE; > > spcr = acpi_data_push(table_data, sizeof(*spcr)); > > @@ -472,16 +472,16 @@ build_spcr(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > } > > static void > -build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > +build_srat(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > { > AcpiSystemResourceAffinityTable *srat; > AcpiSratProcessorGiccAffinity *core; > AcpiSratMemoryAffinity *numamem; > int i, j, srat_start; > uint64_t mem_base; > - uint32_t *cpu_node = g_malloc0(guest_info->smp_cpus * sizeof(uint32_t)); > + uint32_t *cpu_node = g_malloc0(vms->smp_cpus * sizeof(uint32_t)); > > - for (i = 0; i < guest_info->smp_cpus; i++) { > + for (i = 0; i < vms->smp_cpus; i++) { > j = numa_get_node_for_cpu(i); > if (j < nb_numa_nodes) { > cpu_node[i] = j; > @@ -492,7 +492,7 @@ build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > srat = acpi_data_push(table_data, sizeof(*srat)); > srat->reserved1 = cpu_to_le32(1); > > - for (i = 0; i < guest_info->smp_cpus; ++i) { > + for (i = 0; i < vms->smp_cpus; ++i) { > core = acpi_data_push(table_data, sizeof(*core)); > core->type = ACPI_SRAT_PROCESSOR_GICC; > core->length = sizeof(*core); > @@ -502,7 +502,7 @@ build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > } > g_free(cpu_node); > > - mem_base = guest_info->memmap[VIRT_MEM].base; > + mem_base = vms->memmap[VIRT_MEM].base; > for (i = 0; i < nb_numa_nodes; ++i) { > numamem = acpi_data_push(table_data, sizeof(*numamem)); > build_srat_memory(numamem, mem_base, numa_info[i].node_mem, i, > @@ -515,10 +515,10 @@ build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > } > > static void > -build_mcfg(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > +build_mcfg(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > { > AcpiTableMcfg *mcfg; > - const MemMapEntry *memmap = guest_info->memmap; > + const MemMapEntry *memmap = vms->memmap; > int len = sizeof(*mcfg) + sizeof(mcfg->allocation[0]); > > mcfg = acpi_data_push(table_data, len); > @@ -561,11 +561,12 @@ build_gtdt(GArray *table_data, BIOSLinker *linker) > > /* MADT */ > static void > -build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > +build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > { > + VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms); > int madt_start = table_data->len; > - const MemMapEntry *memmap = guest_info->memmap; > - const int *irqmap = guest_info->irqmap; > + const MemMapEntry *memmap = vms->memmap; > + const int *irqmap = vms->irqmap; > AcpiMultipleApicTable *madt; > AcpiMadtGenericDistributor *gicd; > AcpiMadtGenericMsiFrame *gic_msi; > @@ -577,16 +578,16 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > gicd->type = ACPI_APIC_GENERIC_DISTRIBUTOR; > gicd->length = sizeof(*gicd); > gicd->base_address = memmap[VIRT_GIC_DIST].base; > - gicd->version = guest_info->gic_version; > + gicd->version = vms->gic_version; > > - for (i = 0; i < guest_info->smp_cpus; i++) { > + for (i = 0; i < vms->smp_cpus; i++) { > AcpiMadtGenericInterrupt *gicc = acpi_data_push(table_data, > sizeof *gicc); > ARMCPU *armcpu = ARM_CPU(qemu_get_cpu(i)); > > gicc->type = ACPI_APIC_GENERIC_INTERRUPT; > gicc->length = sizeof(*gicc); > - if (guest_info->gic_version == 2) { > + if (vms->gic_version == 2) { > gicc->base_address = memmap[VIRT_GIC_CPU].base; > } > gicc->cpu_interface_number = i; > @@ -599,7 +600,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > } > } > > - if (guest_info->gic_version == 3) { > + if (vms->gic_version == 3) { > AcpiMadtGenericTranslator *gic_its; > AcpiMadtGenericRedistributor *gicr = acpi_data_push(table_data, > sizeof *gicr); > @@ -609,7 +610,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > gicr->base_address = cpu_to_le64(memmap[VIRT_GIC_REDIST].base); > gicr->range_length = cpu_to_le32(memmap[VIRT_GIC_REDIST].size); > > - if (its_class_name() && !guest_info->no_its) { > + if (its_class_name() && !vmc->no_its) { > gic_its = acpi_data_push(table_data, sizeof *gic_its); > gic_its->type = ACPI_APIC_GENERIC_TRANSLATOR; > gic_its->length = sizeof(*gic_its); > @@ -658,11 +659,11 @@ build_fadt(GArray *table_data, BIOSLinker *linker, unsigned dsdt_tbl_offset) > > /* DSDT */ > static void > -build_dsdt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > +build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) > { > Aml *scope, *dsdt; > - const MemMapEntry *memmap = guest_info->memmap; > - const int *irqmap = guest_info->irqmap; > + const MemMapEntry *memmap = vms->memmap; > + const int *irqmap = vms->irqmap; > > dsdt = init_aml_allocator(); > /* Reserve space for header */ > @@ -674,7 +675,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > * the RTC ACPI device at all when using UEFI. > */ > scope = aml_scope("\\_SB"); > - acpi_dsdt_add_cpus(scope, guest_info->smp_cpus); > + acpi_dsdt_add_cpus(scope, vms->smp_cpus); > acpi_dsdt_add_uart(scope, &memmap[VIRT_UART], > (irqmap[VIRT_UART] + ARM_SPI_BASE)); > acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); > @@ -682,7 +683,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) > acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], > (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); > acpi_dsdt_add_pci(scope, memmap, (irqmap[VIRT_PCIE] + ARM_SPI_BASE), > - guest_info->use_highmem); > + vms->highmem); > acpi_dsdt_add_gpio(scope, &memmap[VIRT_GPIO], > (irqmap[VIRT_GPIO] + ARM_SPI_BASE)); > acpi_dsdt_add_power_button(scope); > @@ -709,8 +710,9 @@ struct AcpiBuildState { > } AcpiBuildState; > > static > -void virt_acpi_build(VirtGuestInfo *guest_info, AcpiBuildTables *tables) > +void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) > { > + VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms); > GArray *table_offsets; > unsigned dsdt, rsdt; > GArray *tables_blob = tables->table_data; > @@ -724,32 +726,32 @@ void virt_acpi_build(VirtGuestInfo *guest_info, AcpiBuildTables *tables) > > /* DSDT is pointed to by FADT */ > dsdt = tables_blob->len; > - build_dsdt(tables_blob, tables->linker, guest_info); > + build_dsdt(tables_blob, tables->linker, vms); > > /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ > acpi_add_table(table_offsets, tables_blob); > build_fadt(tables_blob, tables->linker, dsdt); > > acpi_add_table(table_offsets, tables_blob); > - build_madt(tables_blob, tables->linker, guest_info); > + build_madt(tables_blob, tables->linker, vms); > > acpi_add_table(table_offsets, tables_blob); > build_gtdt(tables_blob, tables->linker); > > acpi_add_table(table_offsets, tables_blob); > - build_mcfg(tables_blob, tables->linker, guest_info); > + build_mcfg(tables_blob, tables->linker, vms); > > acpi_add_table(table_offsets, tables_blob); > - build_spcr(tables_blob, tables->linker, guest_info); > + build_spcr(tables_blob, tables->linker, vms); > > if (nb_numa_nodes > 0) { > acpi_add_table(table_offsets, tables_blob); > - build_srat(tables_blob, tables->linker, guest_info); > + build_srat(tables_blob, tables->linker, vms); > } > > - if (its_class_name() && !guest_info->no_its) { > + if (its_class_name() && !vmc->no_its) { > acpi_add_table(table_offsets, tables_blob); > - build_iort(tables_blob, tables->linker, guest_info); > + build_iort(tables_blob, tables->linker); > } > > /* RSDT is pointed to by RSDP */ > @@ -788,13 +790,13 @@ static void virt_acpi_build_update(void *build_opaque) > > acpi_build_tables_init(&tables); > > - virt_acpi_build(build_state->guest_info, &tables); > + virt_acpi_build(container_of(build_state->guest_info, > + VirtMachineState, acpi_guest_info), &tables); > > acpi_ram_update(build_state->table_mr, tables.table_data); > acpi_ram_update(build_state->rsdp_mr, tables.rsdp); > acpi_ram_update(build_state->linker_mr, tables.linker->cmd_blob); > > - > acpi_build_tables_cleanup(&tables, true); > } > > @@ -842,7 +844,7 @@ void virt_acpi_setup(VirtMachineState *vms) > build_state->guest_info = guest_info; > > acpi_build_tables_init(&tables); > - virt_acpi_build(build_state->guest_info, &tables); > + virt_acpi_build(vms, &tables); > > /* Now expose it all to Guest */ > build_state->table_mr = acpi_add_rom_blob(build_state, tables.table_data, > diff --git a/hw/arm/virt.c b/hw/arm/virt.c > index bcf8a2954c16..2cb2e5b4f52a 100644 > --- a/hw/arm/virt.c > +++ b/hw/arm/virt.c > @@ -1416,13 +1416,7 @@ static void machvirt_init(MachineState *machine) > create_fw_cfg(vms, &address_space_memory); > rom_set_fw(fw_cfg_find()); > > - guest_info->smp_cpus = vms->smp_cpus; > guest_info->fw_cfg = fw_cfg_find(); > - guest_info->memmap = vms->memmap; > - guest_info->irqmap = vms->irqmap; > - guest_info->use_highmem = vms->highmem; > - guest_info->gic_version = vms->gic_version; > - guest_info->no_its = vmc->no_its; > vms->machine_done.notify = virt_machine_done; > qemu_add_machine_init_done_notifier(&vms->machine_done); > > diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h > index cbedc682ae99..52b35478223e 100644 > --- a/include/hw/arm/virt.h > +++ b/include/hw/arm/virt.h > @@ -82,13 +82,7 @@ typedef struct MemMapEntry { > } MemMapEntry; > > typedef struct VirtGuestInfo { > - int smp_cpus; > FWCfgState *fw_cfg; > - const MemMapEntry *memmap; > - const int *irqmap; > - bool use_highmem; > - int gic_version; > - bool no_its; > } VirtGuestInfo; > > typedef struct {
diff --git a/hw/arm/virt-acpi-build.c b/hw/arm/virt-acpi-build.c index f7ce6aeed307..7a1efd0dc538 100644 --- a/hw/arm/virt-acpi-build.c +++ b/hw/arm/virt-acpi-build.c @@ -384,7 +384,7 @@ build_rsdp(GArray *rsdp_table, BIOSLinker *linker, unsigned rsdt_tbl_offset) } static void -build_iort(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) +build_iort(GArray *table_data, BIOSLinker *linker) { int iort_start = table_data->len; AcpiIortIdMapping *idmap; @@ -439,11 +439,11 @@ build_iort(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) } static void -build_spcr(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) +build_spcr(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) { AcpiSerialPortConsoleRedirection *spcr; - const MemMapEntry *uart_memmap = &guest_info->memmap[VIRT_UART]; - int irq = guest_info->irqmap[VIRT_UART] + ARM_SPI_BASE; + const MemMapEntry *uart_memmap = &vms->memmap[VIRT_UART]; + int irq = vms->irqmap[VIRT_UART] + ARM_SPI_BASE; spcr = acpi_data_push(table_data, sizeof(*spcr)); @@ -472,16 +472,16 @@ build_spcr(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) } static void -build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) +build_srat(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) { AcpiSystemResourceAffinityTable *srat; AcpiSratProcessorGiccAffinity *core; AcpiSratMemoryAffinity *numamem; int i, j, srat_start; uint64_t mem_base; - uint32_t *cpu_node = g_malloc0(guest_info->smp_cpus * sizeof(uint32_t)); + uint32_t *cpu_node = g_malloc0(vms->smp_cpus * sizeof(uint32_t)); - for (i = 0; i < guest_info->smp_cpus; i++) { + for (i = 0; i < vms->smp_cpus; i++) { j = numa_get_node_for_cpu(i); if (j < nb_numa_nodes) { cpu_node[i] = j; @@ -492,7 +492,7 @@ build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) srat = acpi_data_push(table_data, sizeof(*srat)); srat->reserved1 = cpu_to_le32(1); - for (i = 0; i < guest_info->smp_cpus; ++i) { + for (i = 0; i < vms->smp_cpus; ++i) { core = acpi_data_push(table_data, sizeof(*core)); core->type = ACPI_SRAT_PROCESSOR_GICC; core->length = sizeof(*core); @@ -502,7 +502,7 @@ build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) } g_free(cpu_node); - mem_base = guest_info->memmap[VIRT_MEM].base; + mem_base = vms->memmap[VIRT_MEM].base; for (i = 0; i < nb_numa_nodes; ++i) { numamem = acpi_data_push(table_data, sizeof(*numamem)); build_srat_memory(numamem, mem_base, numa_info[i].node_mem, i, @@ -515,10 +515,10 @@ build_srat(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) } static void -build_mcfg(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) +build_mcfg(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) { AcpiTableMcfg *mcfg; - const MemMapEntry *memmap = guest_info->memmap; + const MemMapEntry *memmap = vms->memmap; int len = sizeof(*mcfg) + sizeof(mcfg->allocation[0]); mcfg = acpi_data_push(table_data, len); @@ -561,11 +561,12 @@ build_gtdt(GArray *table_data, BIOSLinker *linker) /* MADT */ static void -build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) +build_madt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) { + VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms); int madt_start = table_data->len; - const MemMapEntry *memmap = guest_info->memmap; - const int *irqmap = guest_info->irqmap; + const MemMapEntry *memmap = vms->memmap; + const int *irqmap = vms->irqmap; AcpiMultipleApicTable *madt; AcpiMadtGenericDistributor *gicd; AcpiMadtGenericMsiFrame *gic_msi; @@ -577,16 +578,16 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) gicd->type = ACPI_APIC_GENERIC_DISTRIBUTOR; gicd->length = sizeof(*gicd); gicd->base_address = memmap[VIRT_GIC_DIST].base; - gicd->version = guest_info->gic_version; + gicd->version = vms->gic_version; - for (i = 0; i < guest_info->smp_cpus; i++) { + for (i = 0; i < vms->smp_cpus; i++) { AcpiMadtGenericInterrupt *gicc = acpi_data_push(table_data, sizeof *gicc); ARMCPU *armcpu = ARM_CPU(qemu_get_cpu(i)); gicc->type = ACPI_APIC_GENERIC_INTERRUPT; gicc->length = sizeof(*gicc); - if (guest_info->gic_version == 2) { + if (vms->gic_version == 2) { gicc->base_address = memmap[VIRT_GIC_CPU].base; } gicc->cpu_interface_number = i; @@ -599,7 +600,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) } } - if (guest_info->gic_version == 3) { + if (vms->gic_version == 3) { AcpiMadtGenericTranslator *gic_its; AcpiMadtGenericRedistributor *gicr = acpi_data_push(table_data, sizeof *gicr); @@ -609,7 +610,7 @@ build_madt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) gicr->base_address = cpu_to_le64(memmap[VIRT_GIC_REDIST].base); gicr->range_length = cpu_to_le32(memmap[VIRT_GIC_REDIST].size); - if (its_class_name() && !guest_info->no_its) { + if (its_class_name() && !vmc->no_its) { gic_its = acpi_data_push(table_data, sizeof *gic_its); gic_its->type = ACPI_APIC_GENERIC_TRANSLATOR; gic_its->length = sizeof(*gic_its); @@ -658,11 +659,11 @@ build_fadt(GArray *table_data, BIOSLinker *linker, unsigned dsdt_tbl_offset) /* DSDT */ static void -build_dsdt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) +build_dsdt(GArray *table_data, BIOSLinker *linker, VirtMachineState *vms) { Aml *scope, *dsdt; - const MemMapEntry *memmap = guest_info->memmap; - const int *irqmap = guest_info->irqmap; + const MemMapEntry *memmap = vms->memmap; + const int *irqmap = vms->irqmap; dsdt = init_aml_allocator(); /* Reserve space for header */ @@ -674,7 +675,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) * the RTC ACPI device at all when using UEFI. */ scope = aml_scope("\\_SB"); - acpi_dsdt_add_cpus(scope, guest_info->smp_cpus); + acpi_dsdt_add_cpus(scope, vms->smp_cpus); acpi_dsdt_add_uart(scope, &memmap[VIRT_UART], (irqmap[VIRT_UART] + ARM_SPI_BASE)); acpi_dsdt_add_flash(scope, &memmap[VIRT_FLASH]); @@ -682,7 +683,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker, VirtGuestInfo *guest_info) acpi_dsdt_add_virtio(scope, &memmap[VIRT_MMIO], (irqmap[VIRT_MMIO] + ARM_SPI_BASE), NUM_VIRTIO_TRANSPORTS); acpi_dsdt_add_pci(scope, memmap, (irqmap[VIRT_PCIE] + ARM_SPI_BASE), - guest_info->use_highmem); + vms->highmem); acpi_dsdt_add_gpio(scope, &memmap[VIRT_GPIO], (irqmap[VIRT_GPIO] + ARM_SPI_BASE)); acpi_dsdt_add_power_button(scope); @@ -709,8 +710,9 @@ struct AcpiBuildState { } AcpiBuildState; static -void virt_acpi_build(VirtGuestInfo *guest_info, AcpiBuildTables *tables) +void virt_acpi_build(VirtMachineState *vms, AcpiBuildTables *tables) { + VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms); GArray *table_offsets; unsigned dsdt, rsdt; GArray *tables_blob = tables->table_data; @@ -724,32 +726,32 @@ void virt_acpi_build(VirtGuestInfo *guest_info, AcpiBuildTables *tables) /* DSDT is pointed to by FADT */ dsdt = tables_blob->len; - build_dsdt(tables_blob, tables->linker, guest_info); + build_dsdt(tables_blob, tables->linker, vms); /* FADT MADT GTDT MCFG SPCR pointed to by RSDT */ acpi_add_table(table_offsets, tables_blob); build_fadt(tables_blob, tables->linker, dsdt); acpi_add_table(table_offsets, tables_blob); - build_madt(tables_blob, tables->linker, guest_info); + build_madt(tables_blob, tables->linker, vms); acpi_add_table(table_offsets, tables_blob); build_gtdt(tables_blob, tables->linker); acpi_add_table(table_offsets, tables_blob); - build_mcfg(tables_blob, tables->linker, guest_info); + build_mcfg(tables_blob, tables->linker, vms); acpi_add_table(table_offsets, tables_blob); - build_spcr(tables_blob, tables->linker, guest_info); + build_spcr(tables_blob, tables->linker, vms); if (nb_numa_nodes > 0) { acpi_add_table(table_offsets, tables_blob); - build_srat(tables_blob, tables->linker, guest_info); + build_srat(tables_blob, tables->linker, vms); } - if (its_class_name() && !guest_info->no_its) { + if (its_class_name() && !vmc->no_its) { acpi_add_table(table_offsets, tables_blob); - build_iort(tables_blob, tables->linker, guest_info); + build_iort(tables_blob, tables->linker); } /* RSDT is pointed to by RSDP */ @@ -788,13 +790,13 @@ static void virt_acpi_build_update(void *build_opaque) acpi_build_tables_init(&tables); - virt_acpi_build(build_state->guest_info, &tables); + virt_acpi_build(container_of(build_state->guest_info, + VirtMachineState, acpi_guest_info), &tables); acpi_ram_update(build_state->table_mr, tables.table_data); acpi_ram_update(build_state->rsdp_mr, tables.rsdp); acpi_ram_update(build_state->linker_mr, tables.linker->cmd_blob); - acpi_build_tables_cleanup(&tables, true); } @@ -842,7 +844,7 @@ void virt_acpi_setup(VirtMachineState *vms) build_state->guest_info = guest_info; acpi_build_tables_init(&tables); - virt_acpi_build(build_state->guest_info, &tables); + virt_acpi_build(vms, &tables); /* Now expose it all to Guest */ build_state->table_mr = acpi_add_rom_blob(build_state, tables.table_data, diff --git a/hw/arm/virt.c b/hw/arm/virt.c index bcf8a2954c16..2cb2e5b4f52a 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -1416,13 +1416,7 @@ static void machvirt_init(MachineState *machine) create_fw_cfg(vms, &address_space_memory); rom_set_fw(fw_cfg_find()); - guest_info->smp_cpus = vms->smp_cpus; guest_info->fw_cfg = fw_cfg_find(); - guest_info->memmap = vms->memmap; - guest_info->irqmap = vms->irqmap; - guest_info->use_highmem = vms->highmem; - guest_info->gic_version = vms->gic_version; - guest_info->no_its = vmc->no_its; vms->machine_done.notify = virt_machine_done; qemu_add_machine_init_done_notifier(&vms->machine_done); diff --git a/include/hw/arm/virt.h b/include/hw/arm/virt.h index cbedc682ae99..52b35478223e 100644 --- a/include/hw/arm/virt.h +++ b/include/hw/arm/virt.h @@ -82,13 +82,7 @@ typedef struct MemMapEntry { } MemMapEntry; typedef struct VirtGuestInfo { - int smp_cpus; FWCfgState *fw_cfg; - const MemMapEntry *memmap; - const int *irqmap; - bool use_highmem; - int gic_version; - bool no_its; } VirtGuestInfo; typedef struct {
Now that we pass VirtMachineState, and guest-info is just part of that state, we can remove all the redundant members and access the VirtMachineState directly. Signed-off-by: Andrew Jones <drjones@redhat.com> --- hw/arm/virt-acpi-build.c | 72 +++++++++++++++++++++++++----------------------- hw/arm/virt.c | 6 ---- include/hw/arm/virt.h | 6 ---- 3 files changed, 37 insertions(+), 47 deletions(-) -- 2.9.3