X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcpu%2Fintr_control.cc;h=de7f9245e4d77cfd0ff9b8228f2b6778bf668fed;hb=eac5eac67ae8076e934d78063a24eeef08f25413;hp=e9f27e9eda4d91d6063f35a494a233457c77077e;hpb=f0fef8f850b0c5aa73337ca11b26169163b2b2e1;p=gem5.git diff --git a/src/cpu/intr_control.cc b/src/cpu/intr_control.cc index e9f27e9ed..de7f9245e 100644 --- a/src/cpu/intr_control.cc +++ b/src/cpu/intr_control.cc @@ -32,52 +32,38 @@ #include #include +#include "base/trace.hh" #include "cpu/base.hh" #include "cpu/thread_context.hh" #include "cpu/intr_control.hh" -#include "params/IntrControl.hh" #include "sim/sim_object.hh" using namespace std; -IntrControl::IntrControl(const string &name, System *s) - : SimObject(name), sys(s) +IntrControl::IntrControl(const Params *p) + : SimObject(p), sys(p->sys) {} -void -IntrControl::post(int int_num, int index) -{ - std::vector &tcvec = sys->threadContexts; - BaseCPU *temp = tcvec[0]->getCpuPtr(); - temp->post_interrupt(int_num, index); -} - void IntrControl::post(int cpu_id, int int_num, int index) { + DPRINTF(IntrControl, "post %d:%d (cpu %d)\n", int_num, index, cpu_id); std::vector &tcvec = sys->threadContexts; - BaseCPU *temp = tcvec[cpu_id]->getCpuPtr(); - temp->post_interrupt(int_num, index); -} - -void -IntrControl::clear(int int_num, int index) -{ - std::vector &tcvec = sys->threadContexts; - BaseCPU *temp = tcvec[0]->getCpuPtr(); - temp->clear_interrupt(int_num, index); + BaseCPU *cpu = tcvec[cpu_id]->getCpuPtr(); + cpu->postInterrupt(int_num, index); } void IntrControl::clear(int cpu_id, int int_num, int index) { + DPRINTF(IntrControl, "clear %d:%d (cpu %d)\n", int_num, index, cpu_id); std::vector &tcvec = sys->threadContexts; - BaseCPU *temp = tcvec[cpu_id]->getCpuPtr(); - temp->clear_interrupt(int_num, index); + BaseCPU *cpu = tcvec[cpu_id]->getCpuPtr(); + cpu->clearInterrupt(int_num, index); } IntrControl * IntrControlParams::create() { - return new IntrControl(name, sys); + return new IntrControl(this); }