mirror of
https://github.com/qemu/qemu.git
synced 2025-08-09 01:50:43 +00:00
pc: Remove compat fields from PcGuestInfo
Remove the fields: legacy_acpi_table_size, has_acpi_build, has_reserved_memory, and rsdp_in_ram from PcGuestInfo, and let the existing code use the PCMachineClass fields directly. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
This commit is contained in:
parent
f944d4798c
commit
bb292f5a9b
@ -2593,6 +2593,7 @@ static
|
|||||||
void acpi_build(AcpiBuildTables *tables)
|
void acpi_build(AcpiBuildTables *tables)
|
||||||
{
|
{
|
||||||
PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
|
PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
|
||||||
|
PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
|
||||||
PcGuestInfo *guest_info = &pcms->acpi_guest_info;
|
PcGuestInfo *guest_info = &pcms->acpi_guest_info;
|
||||||
GArray *table_offsets;
|
GArray *table_offsets;
|
||||||
unsigned facs, dsdt, rsdt, fadt;
|
unsigned facs, dsdt, rsdt, fadt;
|
||||||
@ -2706,12 +2707,12 @@ void acpi_build(AcpiBuildTables *tables)
|
|||||||
*
|
*
|
||||||
* All this is for PIIX4, since QEMU 2.0 didn't support Q35 migration.
|
* All this is for PIIX4, since QEMU 2.0 didn't support Q35 migration.
|
||||||
*/
|
*/
|
||||||
if (guest_info->legacy_acpi_table_size) {
|
if (pcmc->legacy_acpi_table_size) {
|
||||||
/* Subtracting aml_len gives the size of fixed tables. Then add the
|
/* Subtracting aml_len gives the size of fixed tables. Then add the
|
||||||
* size of the PIIX4 DSDT/SSDT in QEMU 2.0.
|
* size of the PIIX4 DSDT/SSDT in QEMU 2.0.
|
||||||
*/
|
*/
|
||||||
int legacy_aml_len =
|
int legacy_aml_len =
|
||||||
guest_info->legacy_acpi_table_size +
|
pcmc->legacy_acpi_table_size +
|
||||||
ACPI_BUILD_LEGACY_CPU_AML_SIZE * max_cpus;
|
ACPI_BUILD_LEGACY_CPU_AML_SIZE * max_cpus;
|
||||||
int legacy_table_size =
|
int legacy_table_size =
|
||||||
ROUND_UP(tables_blob->len - aml_len + legacy_aml_len,
|
ROUND_UP(tables_blob->len - aml_len + legacy_aml_len,
|
||||||
@ -2804,6 +2805,7 @@ static const VMStateDescription vmstate_acpi_build = {
|
|||||||
void acpi_setup(void)
|
void acpi_setup(void)
|
||||||
{
|
{
|
||||||
PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
|
PCMachineState *pcms = PC_MACHINE(qdev_get_machine());
|
||||||
|
PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
|
||||||
PcGuestInfo *guest_info = &pcms->acpi_guest_info;
|
PcGuestInfo *guest_info = &pcms->acpi_guest_info;
|
||||||
AcpiBuildTables tables;
|
AcpiBuildTables tables;
|
||||||
AcpiBuildState *build_state;
|
AcpiBuildState *build_state;
|
||||||
@ -2813,7 +2815,7 @@ void acpi_setup(void)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!guest_info->has_acpi_build) {
|
if (!pcmc->has_acpi_build) {
|
||||||
ACPI_BUILD_DPRINTF("ACPI build disabled. Bailing out.\n");
|
ACPI_BUILD_DPRINTF("ACPI build disabled. Bailing out.\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -2842,7 +2844,7 @@ void acpi_setup(void)
|
|||||||
fw_cfg_add_file(guest_info->fw_cfg, ACPI_BUILD_TPMLOG_FILE,
|
fw_cfg_add_file(guest_info->fw_cfg, ACPI_BUILD_TPMLOG_FILE,
|
||||||
tables.tcpalog->data, acpi_data_len(tables.tcpalog));
|
tables.tcpalog->data, acpi_data_len(tables.tcpalog));
|
||||||
|
|
||||||
if (!guest_info->rsdp_in_ram) {
|
if (!pcmc->rsdp_in_ram) {
|
||||||
/*
|
/*
|
||||||
* Keep for compatibility with old machine types.
|
* Keep for compatibility with old machine types.
|
||||||
* Though RSDP is small, its contents isn't immutable, so
|
* Though RSDP is small, its contents isn't immutable, so
|
||||||
|
@ -4,6 +4,6 @@
|
|||||||
|
|
||||||
#include "qemu/typedefs.h"
|
#include "qemu/typedefs.h"
|
||||||
|
|
||||||
void acpi_setup(PcGuestInfo *);
|
void acpi_setup(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -1180,7 +1180,7 @@ void pc_machine_done(Notifier *notifier, void *data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
acpi_setup(&pcms->acpi_guest_info);
|
acpi_setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
PcGuestInfo *pc_guest_info_init(PCMachineState *pcms)
|
PcGuestInfo *pc_guest_info_init(PCMachineState *pcms)
|
||||||
@ -1316,7 +1316,7 @@ void pc_memory_init(PCMachineState *pcms,
|
|||||||
e820_add_entry(0x100000000ULL, pcms->above_4g_mem_size, E820_RAM);
|
e820_add_entry(0x100000000ULL, pcms->above_4g_mem_size, E820_RAM);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!guest_info->has_reserved_memory &&
|
if (!pcmc->has_reserved_memory &&
|
||||||
(machine->ram_slots ||
|
(machine->ram_slots ||
|
||||||
(machine->maxram_size > machine->ram_size))) {
|
(machine->maxram_size > machine->ram_size))) {
|
||||||
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
||||||
@ -1327,7 +1327,7 @@ void pc_memory_init(PCMachineState *pcms,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* initialize hotplug memory address space */
|
/* initialize hotplug memory address space */
|
||||||
if (guest_info->has_reserved_memory &&
|
if (pcmc->has_reserved_memory &&
|
||||||
(machine->ram_size < machine->maxram_size)) {
|
(machine->ram_size < machine->maxram_size)) {
|
||||||
ram_addr_t hotplug_mem_size =
|
ram_addr_t hotplug_mem_size =
|
||||||
machine->maxram_size - machine->ram_size;
|
machine->maxram_size - machine->ram_size;
|
||||||
@ -1382,7 +1382,7 @@ void pc_memory_init(PCMachineState *pcms,
|
|||||||
|
|
||||||
rom_set_fw(fw_cfg);
|
rom_set_fw(fw_cfg);
|
||||||
|
|
||||||
if (guest_info->has_reserved_memory && pcms->hotplug_memory.base) {
|
if (pcmc->has_reserved_memory && pcms->hotplug_memory.base) {
|
||||||
uint64_t *val = g_malloc(sizeof(*val));
|
uint64_t *val = g_malloc(sizeof(*val));
|
||||||
PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
|
PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
|
||||||
uint64_t res_mem_end = pcms->hotplug_memory.base;
|
uint64_t res_mem_end = pcms->hotplug_memory.base;
|
||||||
|
@ -143,12 +143,7 @@ static void pc_init1(MachineState *machine,
|
|||||||
|
|
||||||
guest_info = pc_guest_info_init(pcms);
|
guest_info = pc_guest_info_init(pcms);
|
||||||
|
|
||||||
guest_info->has_acpi_build = pcmc->has_acpi_build;
|
|
||||||
guest_info->legacy_acpi_table_size = pcmc->legacy_acpi_table_size;
|
|
||||||
|
|
||||||
guest_info->isapc_ram_fw = !pcmc->pci_enabled;
|
guest_info->isapc_ram_fw = !pcmc->pci_enabled;
|
||||||
guest_info->has_reserved_memory = pcmc->has_reserved_memory;
|
|
||||||
guest_info->rsdp_in_ram = pcmc->rsdp_in_ram;
|
|
||||||
|
|
||||||
if (pcmc->smbios_defaults) {
|
if (pcmc->smbios_defaults) {
|
||||||
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
MachineClass *mc = MACHINE_GET_CLASS(machine);
|
||||||
|
@ -136,14 +136,6 @@ static void pc_q35_init(MachineState *machine)
|
|||||||
|
|
||||||
guest_info = pc_guest_info_init(pcms);
|
guest_info = pc_guest_info_init(pcms);
|
||||||
guest_info->isapc_ram_fw = false;
|
guest_info->isapc_ram_fw = false;
|
||||||
guest_info->has_acpi_build = pcmc->has_acpi_build;
|
|
||||||
guest_info->has_reserved_memory = pcmc->has_reserved_memory;
|
|
||||||
guest_info->rsdp_in_ram = pcmc->rsdp_in_ram;
|
|
||||||
|
|
||||||
/* Migration was not supported in 2.0 for Q35, so do not bother
|
|
||||||
* with this hack (see hw/i386/acpi-build.c).
|
|
||||||
*/
|
|
||||||
guest_info->legacy_acpi_table_size = 0;
|
|
||||||
|
|
||||||
if (pcmc->smbios_defaults) {
|
if (pcmc->smbios_defaults) {
|
||||||
/* These values are guest ABI, do not change */
|
/* These values are guest ABI, do not change */
|
||||||
|
@ -43,10 +43,6 @@ struct PcGuestInfo {
|
|||||||
uint64_t *node_mem;
|
uint64_t *node_mem;
|
||||||
uint64_t *node_cpu;
|
uint64_t *node_cpu;
|
||||||
FWCfgState *fw_cfg;
|
FWCfgState *fw_cfg;
|
||||||
int legacy_acpi_table_size;
|
|
||||||
bool has_acpi_build;
|
|
||||||
bool has_reserved_memory;
|
|
||||||
bool rsdp_in_ram;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user