From: Marcel Apfelbaum <marcel@redhat.com>
To: Eduardo Habkost <ehabkost@redhat.com>, qemu-devel@nongnu.org
Cc: Marcel Apfelbaum <marcel.a@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>,
David Gibson <david@gibson.dropbear.id.au>
Subject: Re: [Qemu-devel] [PATCH v3 1/6] pc: Move compat boolean globals to PCMachineClass
Date: Wed, 2 Dec 2015 11:57:42 +0200 [thread overview]
Message-ID: <565EC096.2090602@redhat.com> (raw)
In-Reply-To: <1449010688-19205-2-git-send-email-ehabkost@redhat.com>
On 12/02/2015 12:58 AM, Eduardo Habkost wrote:
> This way the compat flags can be initialized in the machine_options()
> function. This will help us to eventually eliminate the pc_compat_*()
> functions.
Hi, I have only a minor comment here,
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> hw/i386/pc.c | 8 +++++
> hw/i386/pc_piix.c | 84 +++++++++++++++++++++++++---------------------------
> hw/i386/pc_q35.c | 54 +++++++++++++++------------------
> include/hw/i386/pc.h | 14 +++++++++
> 4 files changed, 86 insertions(+), 74 deletions(-)
>
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 5e20e07..129aa04 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1952,6 +1952,14 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
> HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc);
>
> pcmc->get_hotplug_handler = mc->get_hotplug_handler;
> + pcmc->pci_enabled = true;
> + pcmc->has_acpi_build = true;
> + pcmc->rsdp_in_ram = true;
> + pcmc->smbios_defaults = true;
> + pcmc->smbios_uuid_encoded = true;
> + pcmc->gigabyte_align = true;
> + pcmc->has_reserved_memory = true;
> + pcmc->kvmclock_enabled = true;
> mc->get_hotplug_handler = pc_get_hotpug_handler;
> mc->cpu_index_to_socket_id = pc_cpu_index_to_socket_id;
> mc->default_boot_order = "cad";
> diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
> index 2e41efe..7a7f748 100644
> --- a/hw/i386/pc_piix.c
> +++ b/hw/i386/pc_piix.c
> @@ -60,26 +60,14 @@ static const int ide_iobase[MAX_IDE_BUS] = { 0x1f0, 0x170 };
> static const int ide_iobase2[MAX_IDE_BUS] = { 0x3f6, 0x376 };
> static const int ide_irq[MAX_IDE_BUS] = { 14, 15 };
>
> -static bool pci_enabled = true;
> -static bool has_acpi_build = true;
> -static bool rsdp_in_ram = true;
> static int legacy_acpi_table_size;
> -static bool smbios_defaults = true;
> -static bool smbios_legacy_mode;
> -static bool smbios_uuid_encoded = true;
> -/* Make sure that guest addresses aligned at 1Gbyte boundaries get mapped to
> - * host addresses aligned at 1Gbyte boundaries. This way we can use 1GByte
> - * pages in the host.
> - */
> -static bool gigabyte_align = true;
> -static bool has_reserved_memory = true;
> -static bool kvmclock_enabled = true;
>
> /* PC hardware initialisation */
> static void pc_init1(MachineState *machine,
> const char *host_type, const char *pci_type)
> {
> PCMachineState *pcms = PC_MACHINE(machine);
> + PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
> MemoryRegion *system_memory = get_system_memory();
> MemoryRegion *system_io = get_system_io();
> int i;
> @@ -108,7 +96,7 @@ static void pc_init1(MachineState *machine,
> * breaking migration.
> */
> if (machine->ram_size >= 0xe0000000) {
> - lowmem = gigabyte_align ? 0xc0000000 : 0xe0000000;
> + lowmem = pcmc->gigabyte_align ? 0xc0000000 : 0xe0000000;
> } else {
> lowmem = 0xe0000000;
> }
> @@ -141,11 +129,11 @@ static void pc_init1(MachineState *machine,
>
> pc_cpus_init(pcms);
>
> - if (kvm_enabled() && kvmclock_enabled) {
> + if (kvm_enabled() && pcmc->kvmclock_enabled) {
> kvmclock_create();
> }
>
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> pci_memory = g_new(MemoryRegion, 1);
> memory_region_init(pci_memory, NULL, "pci", UINT64_MAX);
> rom_memory = pci_memory;
> @@ -156,18 +144,19 @@ static void pc_init1(MachineState *machine,
>
> guest_info = pc_guest_info_init(pcms);
>
> - guest_info->has_acpi_build = has_acpi_build;
> + guest_info->has_acpi_build = pcmc->has_acpi_build;
> guest_info->legacy_acpi_table_size = legacy_acpi_table_size;
Why is legacy_acpi_table_size left behind? Maybe it is a new field.
Thanks,
Marcel
>
> - guest_info->isapc_ram_fw = !pci_enabled;
> - guest_info->has_reserved_memory = has_reserved_memory;
> - guest_info->rsdp_in_ram = rsdp_in_ram;
> + 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 (smbios_defaults) {
> + if (pcmc->smbios_defaults) {
> MachineClass *mc = MACHINE_GET_CLASS(machine);
> /* These values are guest ABI, do not change */
> smbios_set_defaults("QEMU", "Standard PC (i440FX + PIIX, 1996)",
> - mc->name, smbios_legacy_mode, smbios_uuid_encoded,
> + mc->name, pcmc->smbios_legacy_mode,
> + pcmc->smbios_uuid_encoded,
> SMBIOS_ENTRY_POINT_21);
> }
>
> @@ -182,14 +171,14 @@ static void pc_init1(MachineState *machine,
>
> gsi_state = g_malloc0(sizeof(*gsi_state));
> if (kvm_irqchip_in_kernel()) {
> - kvm_pc_setup_irq_routing(pci_enabled);
> + kvm_pc_setup_irq_routing(pcmc->pci_enabled);
> gsi = qemu_allocate_irqs(kvm_pc_gsi_handler, gsi_state,
> GSI_NUM_PINS);
> } else {
> gsi = qemu_allocate_irqs(gsi_handler, gsi_state, GSI_NUM_PINS);
> }
>
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> pci_bus = i440fx_init(host_type,
> pci_type,
> &i440fx_state, &piix3_devfn, &isa_bus, gsi,
> @@ -217,13 +206,13 @@ static void pc_init1(MachineState *machine,
> gsi_state->i8259_irq[i] = i8259[i];
> }
> g_free(i8259);
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> ioapic_init_gsi(gsi_state, "i440fx");
> }
>
> pc_register_ferr_irq(gsi[13]);
>
> - pc_vga_init(isa_bus, pci_enabled ? pci_bus : NULL);
> + pc_vga_init(isa_bus, pcmc->pci_enabled ? pci_bus : NULL);
>
> assert(pcms->vmport != ON_OFF_AUTO_MAX);
> if (pcms->vmport == ON_OFF_AUTO_AUTO) {
> @@ -237,7 +226,7 @@ static void pc_init1(MachineState *machine,
> pc_nic_init(isa_bus, pci_bus);
>
> ide_drive_get(hd, ARRAY_SIZE(hd));
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> PCIDevice *dev;
> if (xen_enabled()) {
> dev = pci_piix3_xen_ide_init(pci_bus, hd, piix3_devfn + 1);
> @@ -264,11 +253,11 @@ static void pc_init1(MachineState *machine,
>
> pc_cmos_init(pcms, idebus[0], idebus[1], rtc_state);
>
> - if (pci_enabled && usb_enabled()) {
> + if (pcmc->pci_enabled && usb_enabled()) {
> pci_create_simple(pci_bus, piix3_devfn + 2, "piix3-usb-uhci");
> }
>
> - if (pci_enabled && acpi_enabled) {
> + if (pcmc->pci_enabled && acpi_enabled) {
> DeviceState *piix4_pm;
> I2CBus *smbus;
>
> @@ -289,7 +278,7 @@ static void pc_init1(MachineState *machine,
> PC_MACHINE_ACPI_DEVICE_PROP, &error_abort);
> }
>
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> pc_pci_device_init(pci_bus);
> }
> }
> @@ -315,7 +304,6 @@ static void pc_compat_2_3(MachineState *machine)
> static void pc_compat_2_2(MachineState *machine)
> {
> pc_compat_2_3(machine);
> - rsdp_in_ram = false;
> machine->suppress_vmdesc = true;
> }
>
> @@ -324,7 +312,6 @@ static void pc_compat_2_1(MachineState *machine)
> PCMachineState *pcms = PC_MACHINE(machine);
>
> pc_compat_2_2(machine);
> - smbios_uuid_encoded = false;
> x86_cpu_change_kvm_default("svm", NULL);
> pcms->enforce_aligned_dimm = false;
> }
> @@ -349,16 +336,12 @@ static void pc_compat_2_0(MachineState *machine)
> * QEMU 1.7 it is 6414. For RHEL/CentOS 7.0 it is 6418.
> */
> legacy_acpi_table_size = 6652;
> - smbios_legacy_mode = true;
> - has_reserved_memory = false;
> pc_set_legacy_acpi_data_size();
> }
>
> static void pc_compat_1_7(MachineState *machine)
> {
> pc_compat_2_0(machine);
> - smbios_defaults = false;
> - gigabyte_align = false;
> option_rom_has_mr = true;
> legacy_acpi_table_size = 6414;
> x86_cpu_change_kvm_default("x2apic", NULL);
> @@ -368,7 +351,6 @@ static void pc_compat_1_6(MachineState *machine)
> {
> pc_compat_1_7(machine);
> rom_file_has_mr = false;
> - has_acpi_build = false;
> }
>
> static void pc_compat_1_5(MachineState *machine)
> @@ -398,17 +380,10 @@ static void pc_compat_1_2(MachineState *machine)
> static void pc_compat_0_13(MachineState *machine)
> {
> pc_compat_1_2(machine);
> - kvmclock_enabled = false;
> }
>
> static void pc_init_isa(MachineState *machine)
> {
> - pci_enabled = false;
> - has_acpi_build = false;
> - smbios_defaults = false;
> - gigabyte_align = false;
> - smbios_legacy_mode = true;
> - has_reserved_memory = false;
> option_rom_has_mr = true;
> rom_file_has_mr = false;
> if (!machine->cpu_model) {
> @@ -510,9 +485,11 @@ DEFINE_I440FX_MACHINE(v2_3, "pc-i440fx-2.3", pc_compat_2_3,
>
> static void pc_i440fx_2_2_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_i440fx_2_3_machine_options(m);
> m->hw_version = "2.2.0";
> SET_MACHINE_COMPAT(m, PC_COMPAT_2_2);
> + pcmc->rsdp_in_ram = false;
> }
>
> DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compat_2_2,
> @@ -521,10 +498,12 @@ DEFINE_I440FX_MACHINE(v2_2, "pc-i440fx-2.2", pc_compat_2_2,
>
> static void pc_i440fx_2_1_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_i440fx_2_2_machine_options(m);
> m->hw_version = "2.1.0";
> m->default_display = NULL;
> SET_MACHINE_COMPAT(m, PC_COMPAT_2_1);
> + pcmc->smbios_uuid_encoded = false;
> }
>
> DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compat_2_1,
> @@ -534,9 +513,12 @@ DEFINE_I440FX_MACHINE(v2_1, "pc-i440fx-2.1", pc_compat_2_1,
>
> static void pc_i440fx_2_0_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_i440fx_2_1_machine_options(m);
> m->hw_version = "2.0.0";
> SET_MACHINE_COMPAT(m, PC_COMPAT_2_0);
> + pcmc->smbios_legacy_mode = true;
> + pcmc->has_reserved_memory = false;
> }
>
> DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0,
> @@ -545,10 +527,13 @@ DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0,
>
> static void pc_i440fx_1_7_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_i440fx_2_0_machine_options(m);
> m->hw_version = "1.7.0";
> m->default_machine_opts = NULL;
> SET_MACHINE_COMPAT(m, PC_COMPAT_1_7);
> + pcmc->smbios_defaults = false;
> + pcmc->gigabyte_align = false;
> }
>
> DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7,
> @@ -557,9 +542,11 @@ DEFINE_I440FX_MACHINE(v1_7, "pc-i440fx-1.7", pc_compat_1_7,
>
> static void pc_i440fx_1_6_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_i440fx_1_7_machine_options(m);
> m->hw_version = "1.6.0";
> SET_MACHINE_COMPAT(m, PC_COMPAT_1_6);
> + pcmc->has_acpi_build = false;
> }
>
> DEFINE_I440FX_MACHINE(v1_6, "pc-i440fx-1.6", pc_compat_1_6,
> @@ -813,9 +800,11 @@ DEFINE_I440FX_MACHINE(v0_14, "pc-0.14", pc_compat_1_2,
>
> static void pc_i440fx_0_13_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_i440fx_0_14_machine_options(m);
> m->hw_version = "0.13";
> SET_MACHINE_COMPAT(m, PC_COMPAT_0_13);
> + pcmc->kvmclock_enabled = false;
> }
>
> DEFINE_I440FX_MACHINE(v0_13, "pc-0.13", pc_compat_0_13,
> @@ -1037,8 +1026,15 @@ void igd_passthrough_isa_bridge_create(PCIBus *bus, uint16_t gpu_dev_id)
>
> static void isapc_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> m->desc = "ISA-only PC";
> m->max_cpus = 1;
> + pcmc->pci_enabled = false;
> + pcmc->has_acpi_build = false;
> + pcmc->smbios_defaults = false;
> + pcmc->gigabyte_align = false;
> + pcmc->smbios_legacy_mode = true;
> + pcmc->has_reserved_memory = false;
> }
>
> DEFINE_PC_MACHINE(isapc, "isapc", pc_init_isa,
> diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
> index 133bc68..f9afaa2 100644
> --- a/hw/i386/pc_q35.c
> +++ b/hw/i386/pc_q35.c
> @@ -49,22 +49,11 @@
> /* ICH9 AHCI has 6 ports */
> #define MAX_SATA_PORTS 6
>
> -static bool has_acpi_build = true;
> -static bool rsdp_in_ram = true;
> -static bool smbios_defaults = true;
> -static bool smbios_legacy_mode;
> -static bool smbios_uuid_encoded = true;
> -/* Make sure that guest addresses aligned at 1Gbyte boundaries get mapped to
> - * host addresses aligned at 1Gbyte boundaries. This way we can use 1GByte
> - * pages in the host.
> - */
> -static bool gigabyte_align = true;
> -static bool has_reserved_memory = true;
> -
> /* PC hardware initialisation */
> static void pc_q35_init(MachineState *machine)
> {
> PCMachineState *pcms = PC_MACHINE(machine);
> + PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
> Q35PCIHost *q35_host;
> PCIHostState *phb;
> PCIBus *host_bus;
> @@ -76,7 +65,6 @@ static void pc_q35_init(MachineState *machine)
> MemoryRegion *ram_memory;
> GSIState *gsi_state;
> ISABus *isa_bus;
> - int pci_enabled = 1;
> qemu_irq *gsi;
> qemu_irq *i8259;
> int i;
> @@ -97,7 +85,7 @@ static void pc_q35_init(MachineState *machine)
> * breaking migration.
> */
> if (machine->ram_size >= 0xb0000000) {
> - lowmem = gigabyte_align ? 0x80000000 : 0xb0000000;
> + lowmem = pcmc->gigabyte_align ? 0x80000000 : 0xb0000000;
> } else {
> lowmem = 0xb0000000;
> }
> @@ -134,7 +122,7 @@ static void pc_q35_init(MachineState *machine)
> kvmclock_create();
>
> /* pci enabled */
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> pci_memory = g_new(MemoryRegion, 1);
> memory_region_init(pci_memory, NULL, "pci", UINT64_MAX);
> rom_memory = pci_memory;
> @@ -145,19 +133,20 @@ static void pc_q35_init(MachineState *machine)
>
> guest_info = pc_guest_info_init(pcms);
> guest_info->isapc_ram_fw = false;
> - guest_info->has_acpi_build = has_acpi_build;
> - guest_info->has_reserved_memory = has_reserved_memory;
> - guest_info->rsdp_in_ram = rsdp_in_ram;
> + 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 (smbios_defaults) {
> + if (pcmc->smbios_defaults) {
> /* These values are guest ABI, do not change */
> smbios_set_defaults("QEMU", "Standard PC (Q35 + ICH9, 2009)",
> - mc->name, smbios_legacy_mode, smbios_uuid_encoded,
> + mc->name, pcmc->smbios_legacy_mode,
> + pcmc->smbios_uuid_encoded,
> SMBIOS_ENTRY_POINT_21);
> }
>
> @@ -170,7 +159,7 @@ static void pc_q35_init(MachineState *machine)
> /* irq lines */
> gsi_state = g_malloc0(sizeof(*gsi_state));
> if (kvm_irqchip_in_kernel()) {
> - kvm_pc_setup_irq_routing(pci_enabled);
> + kvm_pc_setup_irq_routing(pcmc->pci_enabled);
> gsi = qemu_allocate_irqs(kvm_pc_gsi_handler, gsi_state,
> GSI_NUM_PINS);
> } else {
> @@ -227,7 +216,7 @@ static void pc_q35_init(MachineState *machine)
> for (i = 0; i < ISA_NUM_IRQS; i++) {
> gsi_state->i8259_irq[i] = i8259[i];
> }
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> ioapic_init_gsi(gsi_state, "q35");
> }
>
> @@ -272,7 +261,7 @@ static void pc_q35_init(MachineState *machine)
> /* the rest devices to which pci devfn is automatically assigned */
> pc_vga_init(isa_bus, host_bus);
> pc_nic_init(isa_bus, host_bus);
> - if (pci_enabled) {
> + if (pcmc->pci_enabled) {
> pc_pci_device_init(host_bus);
> }
> }
> @@ -298,7 +287,6 @@ static void pc_compat_2_3(MachineState *machine)
> static void pc_compat_2_2(MachineState *machine)
> {
> pc_compat_2_3(machine);
> - rsdp_in_ram = false;
> machine->suppress_vmdesc = true;
> }
>
> @@ -308,23 +296,18 @@ static void pc_compat_2_1(MachineState *machine)
>
> pc_compat_2_2(machine);
> pcms->enforce_aligned_dimm = false;
> - smbios_uuid_encoded = false;
> x86_cpu_change_kvm_default("svm", NULL);
> }
>
> static void pc_compat_2_0(MachineState *machine)
> {
> pc_compat_2_1(machine);
> - smbios_legacy_mode = true;
> - has_reserved_memory = false;
> pc_set_legacy_acpi_data_size();
> }
>
> static void pc_compat_1_7(MachineState *machine)
> {
> pc_compat_2_0(machine);
> - smbios_defaults = false;
> - gigabyte_align = false;
> option_rom_has_mr = true;
> x86_cpu_change_kvm_default("x2apic", NULL);
> }
> @@ -333,7 +316,6 @@ static void pc_compat_1_6(MachineState *machine)
> {
> pc_compat_1_7(machine);
> rom_file_has_mr = false;
> - has_acpi_build = false;
> }
>
> static void pc_compat_1_5(MachineState *machine)
> @@ -409,9 +391,11 @@ DEFINE_Q35_MACHINE(v2_3, "pc-q35-2.3", pc_compat_2_3,
>
> static void pc_q35_2_2_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_q35_2_3_machine_options(m);
> m->hw_version = "2.2.0";
> SET_MACHINE_COMPAT(m, PC_COMPAT_2_2);
> + pcmc->rsdp_in_ram = false;
> }
>
> DEFINE_Q35_MACHINE(v2_2, "pc-q35-2.2", pc_compat_2_2,
> @@ -420,10 +404,12 @@ DEFINE_Q35_MACHINE(v2_2, "pc-q35-2.2", pc_compat_2_2,
>
> static void pc_q35_2_1_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_q35_2_2_machine_options(m);
> m->hw_version = "2.1.0";
> m->default_display = NULL;
> SET_MACHINE_COMPAT(m, PC_COMPAT_2_1);
> + pcmc->smbios_uuid_encoded = false;
> }
>
> DEFINE_Q35_MACHINE(v2_1, "pc-q35-2.1", pc_compat_2_1,
> @@ -432,9 +418,12 @@ DEFINE_Q35_MACHINE(v2_1, "pc-q35-2.1", pc_compat_2_1,
>
> static void pc_q35_2_0_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_q35_2_1_machine_options(m);
> m->hw_version = "2.0.0";
> SET_MACHINE_COMPAT(m, PC_COMPAT_2_0);
> + pcmc->has_reserved_memory = false;
> + pcmc->smbios_legacy_mode = true;
> }
>
> DEFINE_Q35_MACHINE(v2_0, "pc-q35-2.0", pc_compat_2_0,
> @@ -443,10 +432,13 @@ DEFINE_Q35_MACHINE(v2_0, "pc-q35-2.0", pc_compat_2_0,
>
> static void pc_q35_1_7_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_q35_2_0_machine_options(m);
> m->hw_version = "1.7.0";
> m->default_machine_opts = NULL;
> SET_MACHINE_COMPAT(m, PC_COMPAT_1_7);
> + pcmc->smbios_defaults = false;
> + pcmc->gigabyte_align = false;
> }
>
> DEFINE_Q35_MACHINE(v1_7, "pc-q35-1.7", pc_compat_1_7,
> @@ -455,9 +447,11 @@ DEFINE_Q35_MACHINE(v1_7, "pc-q35-1.7", pc_compat_1_7,
>
> static void pc_q35_1_6_machine_options(MachineClass *m)
> {
> + PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
> pc_q35_machine_options(m);
> m->hw_version = "1.6.0";
> SET_MACHINE_COMPAT(m, PC_COMPAT_1_6);
> + pcmc->has_acpi_build = false;
> }
>
> DEFINE_Q35_MACHINE(v1_6, "pc-q35-1.6", pc_compat_1_6,
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index 854c330..15171e9 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -62,6 +62,20 @@ struct PCMachineClass {
> bool broken_reserved_end;
> HotplugHandler *(*get_hotplug_handler)(MachineState *machine,
> DeviceState *dev);
> +
> + bool pci_enabled;
> + bool has_acpi_build;
> + bool rsdp_in_ram;
> + bool smbios_defaults;
> + bool smbios_legacy_mode;
> + bool smbios_uuid_encoded;
> + /* Make sure that guest addresses aligned at 1Gbyte boundaries get
> + * mapped to host addresses aligned at 1Gbyte boundaries. This way
> + * we can use 1GByte pages in the host.
> + */
> + bool gigabyte_align;
> + bool has_reserved_memory;
> + bool kvmclock_enabled;
> };
>
> #define TYPE_PC_MACHINE "generic-pc-machine"
>
next prev parent reply other threads:[~2015-12-02 9:57 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-01 22:58 [Qemu-devel] [PATCH v3 0/6] pc: Initialization and compat function cleanup Eduardo Habkost
2015-12-01 22:58 ` [Qemu-devel] [PATCH v3 1/6] pc: Move compat boolean globals to PCMachineClass Eduardo Habkost
2015-12-02 9:57 ` Marcel Apfelbaum [this message]
2015-12-02 10:05 ` Marcel Apfelbaum
2015-12-01 22:58 ` [Qemu-devel] [PATCH v3 2/6] pc: Move legacy_acpi_table_size global " Eduardo Habkost
2015-12-02 10:06 ` Marcel Apfelbaum
2015-12-01 22:58 ` [Qemu-devel] [PATCH v3 3/6] pc: Move acpi_data_size " Eduardo Habkost
2015-12-02 10:09 ` Marcel Apfelbaum
2015-12-01 22:58 ` [Qemu-devel] [PATCH v3 4/6] pc: Move enforce_aligned_dimm " Eduardo Habkost
2015-12-01 22:58 ` [Qemu-devel] [PATCH v3 5/6] pc: Remove enforce-aligned-dimm QOM property Eduardo Habkost
2015-12-01 22:58 ` [Qemu-devel] [PATCH v3 6/6] pc: Move option_rom_has_mr/rom_file_has_mr globals to MachineClass Eduardo Habkost
2015-12-02 10:13 ` 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=565EC096.2090602@redhat.com \
--to=marcel@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=ehabkost@redhat.com \
--cc=marcel.a@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/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).