hw/i386/acpi-build: Use pc_madt_cpu_entry() directly

This is x86-specific code, so there is no advantage in using
pc_madt_cpu_entry() behind an architecture-agnostic interface.

Signed-off-by: Bernhard Beschow <shentey@gmail.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-Id: <20230908084234.17642-2-shentey@gmail.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Bernhard Beschow 2023-09-08 10:42:27 +02:00 committed by Michael S. Tsirkin
parent 886e0a5f31
commit f4a06e5921
4 changed files with 5 additions and 9 deletions

View File

@ -2547,8 +2547,7 @@ void acpi_build(AcpiBuildTables *tables, MachineState *machine)
acpi_add_table(table_offsets, tables_blob); acpi_add_table(table_offsets, tables_blob);
acpi_build_madt(tables_blob, tables->linker, x86ms, acpi_build_madt(tables_blob, tables->linker, x86ms,
ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id, x86ms->oem_id, x86ms->oem_table_id);
x86ms->oem_table_id);
#ifdef CONFIG_ACPI_ERST #ifdef CONFIG_ACPI_ERST
{ {

View File

@ -94,14 +94,13 @@ build_xrupt_override(GArray *entry, uint8_t src, uint32_t gsi, uint16_t flags)
* 5.2.8 Multiple APIC Description Table * 5.2.8 Multiple APIC Description Table
*/ */
void acpi_build_madt(GArray *table_data, BIOSLinker *linker, void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
X86MachineState *x86ms, AcpiDeviceIf *adev, X86MachineState *x86ms,
const char *oem_id, const char *oem_table_id) const char *oem_id, const char *oem_table_id)
{ {
int i; int i;
bool x2apic_mode = false; bool x2apic_mode = false;
MachineClass *mc = MACHINE_GET_CLASS(x86ms); MachineClass *mc = MACHINE_GET_CLASS(x86ms);
const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms)); const CPUArchIdList *apic_ids = mc->possible_cpu_arch_ids(MACHINE(x86ms));
AcpiDeviceIfClass *adevc = ACPI_DEVICE_IF_GET_CLASS(adev);
AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id, AcpiTable table = { .sig = "APIC", .rev = 3, .oem_id = oem_id,
.oem_table_id = oem_table_id }; .oem_table_id = oem_table_id };
@ -111,7 +110,7 @@ void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
build_append_int_noprefix(table_data, 1 /* PCAT_COMPAT */, 4); /* Flags */ build_append_int_noprefix(table_data, 1 /* PCAT_COMPAT */, 4); /* Flags */
for (i = 0; i < apic_ids->len; i++) { for (i = 0; i < apic_ids->len; i++) {
adevc->madt_cpu(i, apic_ids, table_data, false); pc_madt_cpu_entry(i, apic_ids, table_data, false);
if (apic_ids->cpus[i].arch_id > 254) { if (apic_ids->cpus[i].arch_id > 254) {
x2apic_mode = true; x2apic_mode = true;
} }

View File

@ -1,7 +1,6 @@
#ifndef HW_I386_ACPI_COMMON_H #ifndef HW_I386_ACPI_COMMON_H
#define HW_I386_ACPI_COMMON_H #define HW_I386_ACPI_COMMON_H
#include "hw/acpi/acpi_dev_interface.h"
#include "hw/acpi/bios-linker-loader.h" #include "hw/acpi/bios-linker-loader.h"
#include "hw/i386/x86.h" #include "hw/i386/x86.h"
@ -9,7 +8,7 @@
#define ACPI_BUILD_IOAPIC_ID 0x0 #define ACPI_BUILD_IOAPIC_ID 0x0
void acpi_build_madt(GArray *table_data, BIOSLinker *linker, void acpi_build_madt(GArray *table_data, BIOSLinker *linker,
X86MachineState *x86ms, AcpiDeviceIf *adev, X86MachineState *x86ms,
const char *oem_id, const char *oem_table_id); const char *oem_id, const char *oem_table_id);
#endif #endif

View File

@ -214,8 +214,7 @@ static void acpi_build_microvm(AcpiBuildTables *tables,
acpi_add_table(table_offsets, tables_blob); acpi_add_table(table_offsets, tables_blob);
acpi_build_madt(tables_blob, tables->linker, X86_MACHINE(machine), acpi_build_madt(tables_blob, tables->linker, X86_MACHINE(machine),
ACPI_DEVICE_IF(x86ms->acpi_dev), x86ms->oem_id, x86ms->oem_id, x86ms->oem_table_id);
x86ms->oem_table_id);
#ifdef CONFIG_ACPI_ERST #ifdef CONFIG_ACPI_ERST
{ {