[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v6 09/13] hw/i386: Introduce apicid functions inside X86MachineSt
From: |
Babu Moger |
Subject: |
[PATCH v6 09/13] hw/i386: Introduce apicid functions inside X86MachineState |
Date: |
Tue, 10 Mar 2020 21:34:19 -0500 |
User-agent: |
StGit/unknown-version |
Introduce model specific apicid functions inside X86MachineState.
These functions will be loaded from X86CPUDefinition.
Signed-off-by: Babu Moger <address@hidden>
Reviewed-by: Igor Mammedov <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
---
hw/i386/x86.c | 6 ++++++
include/hw/i386/x86.h | 11 +++++++++++
2 files changed, 17 insertions(+)
diff --git a/hw/i386/x86.c b/hw/i386/x86.c
index 929b80c9c7..7dc237c014 100644
--- a/hw/i386/x86.c
+++ b/hw/i386/x86.c
@@ -911,6 +911,12 @@ static void x86_machine_initfn(Object *obj)
x86ms->smm = ON_OFF_AUTO_AUTO;
x86ms->max_ram_below_4g = 0; /* use default */
x86ms->smp_dies = 1;
+
+ x86ms->apicid_from_cpu_idx = x86_apicid_from_cpu_idx;
+ x86ms->topo_ids_from_apicid = x86_topo_ids_from_apicid;
+ x86ms->topo_ids_from_idx = x86_topo_ids_from_idx;
+ x86ms->apicid_from_topo_ids = x86_apicid_from_topo_ids;
+ x86ms->apicid_pkg_offset = apicid_pkg_offset;
}
static void x86_machine_class_init(ObjectClass *oc, void *data)
diff --git a/include/hw/i386/x86.h b/include/hw/i386/x86.h
index 22babcb3bb..57c1d13483 100644
--- a/include/hw/i386/x86.h
+++ b/include/hw/i386/x86.h
@@ -65,6 +65,17 @@ typedef struct {
OnOffAuto smm;
+ /* Apic id specific handlers */
+ uint32_t (*apicid_from_cpu_idx)(X86CPUTopoInfo *topo_info,
+ unsigned cpu_index);
+ void (*topo_ids_from_apicid)(apic_id_t apicid, X86CPUTopoInfo *topo_info,
+ X86CPUTopoIDs *topo_ids);
+ void (*topo_ids_from_idx)(X86CPUTopoInfo *topo_info, unsigned idx,
+ X86CPUTopoIDs *topo_ids);
+ apic_id_t (*apicid_from_topo_ids)(X86CPUTopoInfo *topo_info,
+ const X86CPUTopoIDs *topo_ids);
+ uint32_t (*apicid_pkg_offset)(X86CPUTopoInfo *topo_info);
+
/*
* Address space used by IOAPIC device. All IOAPIC interrupts
* will be translated to MSI messages in the address space.
- Re: [PATCH v6 01/13] hw/i386: Introduce X86CPUTopoInfo to contain topology info, (continued)
- [PATCH v6 02/13] hw/i386: Consolidate topology functions, Babu Moger, 2020/03/10
- [PATCH v6 03/13] machine: Add SMP Sockets in CpuTopology, Babu Moger, 2020/03/10
- [PATCH v6 04/13] hw/i386: Remove unnecessary initialization in x86_cpu_new, Babu Moger, 2020/03/10
- [PATCH v6 05/13] hw/i386: Update structures to save the number of nodes per package, Babu Moger, 2020/03/10
- [PATCH v6 06/13] hw/i386: Rename apicid_from_topo_ids to x86_apicid_from_topo_ids, Babu Moger, 2020/03/10
- [PATCH v6 07/13] hw/386: Add EPYC mode topology decoding functions, Babu Moger, 2020/03/10
- [PATCH v6 08/13] target/i386: Cleanup and use the EPYC mode topology functions, Babu Moger, 2020/03/10
- [PATCH v6 09/13] hw/i386: Introduce apicid functions inside X86MachineState,
Babu Moger <=
- [PATCH v6 10/13] i386: Check for apic id encoding, Babu Moger, 2020/03/10
[PATCH v6 11/13] target/i386: Enable new apic id encoding for EPYC based cpus models, Babu Moger, 2020/03/10
[PATCH v6 12/13] hw/i386: Move arch_id decode inside x86_cpus_init, Babu Moger, 2020/03/10