[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v4 16/26] ppc/xics: simplify the cpu_setup() handler
From: |
Cédric Le Goater |
Subject: |
[Qemu-ppc] [PATCH v4 16/26] ppc/xics: simplify the cpu_setup() handler |
Date: |
Mon, 27 Feb 2017 15:29:23 +0100 |
The cpu_setup() handler currently takes a 'XICSState *' argument to
grab the kernel ICP file descriptor. This interface can be simplified
by using the 'xics' backlink of the ICP object.
This change is also required by subsequent patches which makes use of
the QOM interface for XICS.
Signed-off-by: Cédric Le Goater <address@hidden>
---
hw/intc/xics.c | 5 +++--
hw/intc/xics_kvm.c | 9 ++-------
include/hw/ppc/xics.h | 2 +-
3 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/hw/intc/xics.c b/hw/intc/xics.c
index f828bcb07026..a5be0d83cf36 100644
--- a/hw/intc/xics.c
+++ b/hw/intc/xics.c
@@ -66,14 +66,15 @@ void xics_cpu_setup(XICSState *xics, PowerPCCPU *cpu)
CPUState *cs = CPU(cpu);
CPUPPCState *env = &cpu->env;
ICPState *ss = &xics->ss[cs->cpu_index];
- XICSStateClass *info = XICS_COMMON_GET_CLASS(xics);
+ XICSStateClass *info;
assert(cs->cpu_index < xics->nr_servers);
ss->cs = cs;
+ info = XICS_COMMON_GET_CLASS(xics);
if (info->cpu_setup) {
- info->cpu_setup(xics, cpu);
+ info->cpu_setup(ss, cpu);
}
switch (PPC_INPUT(env)) {
diff --git a/hw/intc/xics_kvm.c b/hw/intc/xics_kvm.c
index 86ddf470e546..7588280b5d69 100644
--- a/hw/intc/xics_kvm.c
+++ b/hw/intc/xics_kvm.c
@@ -324,16 +324,11 @@ static const TypeInfo ics_kvm_info = {
/*
* XICS-KVM
*/
-static void xics_kvm_cpu_setup(XICSState *xics, PowerPCCPU *cpu)
+static void xics_kvm_cpu_setup(ICPState *ss, PowerPCCPU *cpu)
{
- CPUState *cs;
- ICPState *ss;
+ CPUState *cs = CPU(cpu);
int ret;
- cs = CPU(cpu);
- ss = &xics->ss[cs->cpu_index];
-
- assert(cs->cpu_index < xics->nr_servers);
if (kernel_xics_fd == -1) {
abort();
}
diff --git a/include/hw/ppc/xics.h b/include/hw/ppc/xics.h
index 01ca5e2dab50..8325dbdaf104 100644
--- a/include/hw/ppc/xics.h
+++ b/include/hw/ppc/xics.h
@@ -74,7 +74,7 @@ typedef struct XICSFabric XICSFabric;
struct XICSStateClass {
DeviceClass parent_class;
- void (*cpu_setup)(XICSState *icp, PowerPCCPU *cpu);
+ void (*cpu_setup)(ICPState *icp, PowerPCCPU *cpu);
};
struct XICSState {
--
2.7.4
- [Qemu-ppc] [PATCH v4 05/26] ppc/xics: store the ICS object under the sPAPR machine, (continued)
- [Qemu-ppc] [PATCH v4 05/26] ppc/xics: store the ICS object under the sPAPR machine, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 07/26] ppc/xics: introduce a XICSFabric QOM interface to handle ICSs, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 09/26] ppc/xics: use the QOM interface to get irqs, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 10/26] ppc/xics: use the QOM interface to resend irqs, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 08/26] ppc/xics: use the QOM interface under the sPAPR machine, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 11/26] ppc/xics: remove xics_find_source(), Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 12/26] ppc/xics: register the reset handler of ICS objects, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 13/26] ppc/xics: remove the XICS list of ICS, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 14/26] ppc/xics: extend the QOM interface to handle ICPs, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 15/26] ppc/xics: move kernel_xics_fd out of KVMXICSState, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 16/26] ppc/xics: simplify the cpu_setup() handler,
Cédric Le Goater <=
- [Qemu-ppc] [PATCH v4 17/26] ppc/xics: move the cpu_setup() handler under the ICPState class, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 18/26] ppc/xics: use the QOM interface to grab an ICP, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 19/26] ppc/xics: simplify spapr_dt_xics() interface, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 20/26] ppc/xics: register the reset handler of ICP objects, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 21/26] ppc/xics: move the ICP array under the sPAPR machine, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 22/26] ppc/xics: export the XICS init routines, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 23/26] ppc/xics: remove the XICSState classes, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 24/26] ppc/xics: move ics-simple post_load under the machine, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 25/26] ppc/xics: move InterruptStatsProvider to the sPAPR machine, Cédric Le Goater, 2017/02/27
- [Qemu-ppc] [PATCH v4 26/26] ppc/xics: rename 'ICPState *' variables to 'icp', Cédric Le Goater, 2017/02/27