xics: add cpu_setup callback
This adds a cpu_setup callback to the XICS device class (as XICS-KVM will do it different), xics_cpu_setup() will call it if it is set. Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Signed-off-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
parent
5a3d7b23ba
commit
5eb92ccc3f
|
@ -37,9 +37,14 @@ void xics_cpu_setup(XICSState *icp, PowerPCCPU *cpu)
|
||||||
CPUState *cs = CPU(cpu);
|
CPUState *cs = CPU(cpu);
|
||||||
CPUPPCState *env = &cpu->env;
|
CPUPPCState *env = &cpu->env;
|
||||||
ICPState *ss = &icp->ss[cs->cpu_index];
|
ICPState *ss = &icp->ss[cs->cpu_index];
|
||||||
|
XICSStateClass *info = XICS_COMMON_GET_CLASS(icp);
|
||||||
|
|
||||||
assert(cs->cpu_index < icp->nr_servers);
|
assert(cs->cpu_index < icp->nr_servers);
|
||||||
|
|
||||||
|
if (info->cpu_setup) {
|
||||||
|
info->cpu_setup(icp, cpu);
|
||||||
|
}
|
||||||
|
|
||||||
switch (PPC_INPUT(env)) {
|
switch (PPC_INPUT(env)) {
|
||||||
case PPC_FLAGS_INPUT_POWER7:
|
case PPC_FLAGS_INPUT_POWER7:
|
||||||
ss->output = env->irq_inputs[POWER7_INPUT_INT];
|
ss->output = env->irq_inputs[POWER7_INPUT_INT];
|
||||||
|
|
|
@ -64,6 +64,7 @@ typedef struct ICSIRQState ICSIRQState;
|
||||||
struct XICSStateClass {
|
struct XICSStateClass {
|
||||||
DeviceClass parent_class;
|
DeviceClass parent_class;
|
||||||
|
|
||||||
|
void (*cpu_setup)(XICSState *icp, PowerPCCPU *cpu);
|
||||||
void (*set_nr_irqs)(XICSState *icp, uint32_t nr_irqs, Error **errp);
|
void (*set_nr_irqs)(XICSState *icp, uint32_t nr_irqs, Error **errp);
|
||||||
void (*set_nr_servers)(XICSState *icp, uint32_t nr_servers, Error **errp);
|
void (*set_nr_servers)(XICSState *icp, uint32_t nr_servers, Error **errp);
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue