From: Eduardo Habkost <ehabkost@redhat.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH for-2.5 18/18] pc: Move acpi_data_size global to PCMachineClass
Date: Fri, 7 Aug 2015 16:55:59 -0300 [thread overview]
Message-ID: <1438977359-29840-19-git-send-email-ehabkost@redhat.com> (raw)
In-Reply-To: <1438977359-29840-1-git-send-email-ehabkost@redhat.com>
This way we don't need code in pc_compat_*() functions to set the legacy
acpi_data_size value.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/i386/pc.c | 17 ++++++-----------
hw/i386/pc_piix.c | 2 +-
hw/i386/pc_q35.c | 2 +-
include/hw/i386/pc.h | 6 ++++--
4 files changed, 12 insertions(+), 15 deletions(-)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 20db409..4f7c532 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -77,15 +77,6 @@
#define DPRINTF(fmt, ...)
#endif
-/* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables
- * (128K) and other BIOS datastructures (less than 4K reported to be used at
- * the moment, 32K should be enough for a while). */
-static unsigned acpi_data_size = 0x20000 + 0x8000;
-void pc_set_legacy_acpi_data_size(void)
-{
- acpi_data_size = 0x10000;
-}
-
#define BIOS_CFG_IOPORT 0x510
#define FW_CFG_ACPI_TABLES (FW_CFG_ARCH_LOCAL + 0)
#define FW_CFG_SMBIOS_ENTRIES (FW_CFG_ARCH_LOCAL + 1)
@@ -818,6 +809,7 @@ static void load_linux(PCMachineState *pcms,
FILE *f;
char *vmode;
MachineState *machine = MACHINE(pcms);
+ PCMachineClass *pcmc = PC_MACHINE_GET_CLASS(pcms);
const char *kernel_filename = machine->kernel_filename;
const char *initrd_filename = machine->initrd_filename;
const char *kernel_cmdline = machine->kernel_cmdline;
@@ -885,8 +877,8 @@ static void load_linux(PCMachineState *pcms,
initrd_max = 0x37ffffff;
}
- if (initrd_max >= pcms->below_4g_mem_size - acpi_data_size) {
- initrd_max = pcms->below_4g_mem_size - acpi_data_size - 1;
+ if (initrd_max >= pcms->below_4g_mem_size - pcmc->acpi_data_size) {
+ initrd_max = pcms->below_4g_mem_size - pcmc->acpi_data_size - 1;
}
fw_cfg_add_i32(fw_cfg, FW_CFG_CMDLINE_ADDR, cmdline_addr);
@@ -1937,6 +1929,9 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
pcmc->gigabyte_align = true;
pcmc->has_reserved_memory = true;
pcmc->kvmclock_enabled = true;
+ /* BIOS ACPI tables: 128K. Other BIOS datastructures: less than 4K reported
+ * to be used at the moment, 32K should be enough for a while. */
+ pcmc->acpi_data_size = 0x20000 + 0x8000;
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 69ca014..d3d53e5 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -312,7 +312,6 @@ static void pc_compat_2_1(MachineState *machine)
static void pc_compat_2_0(MachineState *machine)
{
pc_compat_2_1(machine);
- pc_set_legacy_acpi_data_size();
}
static void pc_compat_1_7(MachineState *machine)
@@ -476,6 +475,7 @@ static void pc_i440fx_2_0_machine_options(MachineClass *m)
* QEMU 1.7 it is 6414. For RHEL/CentOS 7.0 it is 6418.
*/
pcmc->legacy_acpi_table_size = 6652;
+ pcmc->acpi_data_size = 0x10000;
}
DEFINE_I440FX_MACHINE(v2_0, "pc-i440fx-2.0", pc_compat_2_0,
diff --git a/hw/i386/pc_q35.c b/hw/i386/pc_q35.c
index 6e1b9cd..b006d3c 100644
--- a/hw/i386/pc_q35.c
+++ b/hw/i386/pc_q35.c
@@ -301,7 +301,6 @@ static void pc_compat_2_1(MachineState *machine)
static void pc_compat_2_0(MachineState *machine)
{
pc_compat_2_1(machine);
- pc_set_legacy_acpi_data_size();
}
static void pc_compat_1_7(MachineState *machine)
@@ -406,6 +405,7 @@ static void pc_q35_2_0_machine_options(MachineClass *m)
SET_MACHINE_COMPAT(m, PC_COMPAT_2_0);
pcmc->has_reserved_memory = false;
pcmc->smbios_legacy_mode = true;
+ pcmc->acpi_data_size = 0x10000;
}
DEFINE_Q35_MACHINE(v2_0, "pc-q35-2.0", pc_compat_2_0,
diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
index b812968..e3ecc21 100644
--- a/include/hw/i386/pc.h
+++ b/include/hw/i386/pc.h
@@ -76,6 +76,10 @@ struct PCMachineClass {
bool has_reserved_memory;
bool kvmclock_enabled;
int legacy_acpi_table_size;
+ /* Leave a chunk of memory at the top of RAM for the BIOS ACPI tables
+ * and other BIOS datastructures.
+ */
+ unsigned acpi_data_size;
};
#define TYPE_PC_MACHINE "generic-pc-machine"
@@ -182,8 +186,6 @@ void pc_acpi_init(const char *default_dsdt);
PcGuestInfo *pc_guest_info_init(PCMachineState *pcms);
-void pc_set_legacy_acpi_data_size(void);
-
#define PCI_HOST_PROP_PCI_HOLE_START "pci-hole-start"
#define PCI_HOST_PROP_PCI_HOLE_END "pci-hole-end"
#define PCI_HOST_PROP_PCI_HOLE64_START "pci-hole64-start"
--
2.1.0
prev parent reply other threads:[~2015-08-07 19:56 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-07 19:55 [Qemu-devel] [PATCH for-2.5 00/18] pc: Initialization and compat function cleanup Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 01/18] pc: Use PC_COMPAT_* for CPUID feature compatibility Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 02/18] target-i386: Remove x86_cpu_compat_set_features() Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 03/18] pc: Use error_abort when registering properties Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 04/18] pc: Rename pc_machine variables to pcms Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 05/18] pc: Move PCMachineClass, PCMachineState to qemu/typedefs.h Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 06/18] pc: Eliminate pc_common_machine_options() Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 07/18] pc: Eliminate pc_default_machine_options() Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 08/18] pc: Use PCMachineState for pc_cmos_init() argument Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 09/18] pc: Use PCMachineState for pc_memory_init() argument Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 10/18] pc: Move {above, below}_4g_mem_size variables to PCMachineState Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 11/18] pc: Use PCMachineState as pc_guest_info_init() argument Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 12/18] pc: Remove redundant arguments from *load_linux() Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 13/18] pc: Remove redundant arguments from pc_cmos_init() Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 14/18] pc: Remove redundant arguments from pc_memory_init() Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 15/18] pc: Remove redundant arguments from xen_hvm_init() Eduardo Habkost
2015-08-13 11:06 ` Michael S. Tsirkin
2015-08-17 18:37 ` Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 16/18] pc: Move compat boolean globals to PCMachineClass Eduardo Habkost
2015-08-07 19:55 ` [Qemu-devel] [PATCH for-2.5 17/18] pc: Move legacy_acpi_table_size global " Eduardo Habkost
2015-08-07 19:55 ` Eduardo Habkost [this message]
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=1438977359-29840-19-git-send-email-ehabkost@redhat.com \
--to=ehabkost@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).