Interrupts: Inline some code and remove duplication.
--HG-- extra : convert_revision : 0631c601f281bdd2a12ff0d0ae94576780115c2a
This commit is contained in:
parent
e41197a3f8
commit
11b931df6a
2 changed files with 19 additions and 22 deletions
|
@ -32,6 +32,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#include "base/trace.hh"
|
||||||
#include "cpu/base.hh"
|
#include "cpu/base.hh"
|
||||||
#include "cpu/thread_context.hh"
|
#include "cpu/thread_context.hh"
|
||||||
#include "cpu/intr_control.hh"
|
#include "cpu/intr_control.hh"
|
||||||
|
@ -43,36 +44,22 @@ IntrControl::IntrControl(const Params *p)
|
||||||
: SimObject(p), sys(p->sys)
|
: SimObject(p), sys(p->sys)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void
|
|
||||||
IntrControl::post(int int_num, int index)
|
|
||||||
{
|
|
||||||
std::vector<ThreadContext *> &tcvec = sys->threadContexts;
|
|
||||||
BaseCPU *temp = tcvec[0]->getCpuPtr();
|
|
||||||
temp->post_interrupt(int_num, index);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
IntrControl::post(int cpu_id, int int_num, int index)
|
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<ThreadContext *> &tcvec = sys->threadContexts;
|
std::vector<ThreadContext *> &tcvec = sys->threadContexts;
|
||||||
BaseCPU *temp = tcvec[cpu_id]->getCpuPtr();
|
BaseCPU *cpu = tcvec[cpu_id]->getCpuPtr();
|
||||||
temp->post_interrupt(int_num, index);
|
cpu->post_interrupt(int_num, index);
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
IntrControl::clear(int int_num, int index)
|
|
||||||
{
|
|
||||||
std::vector<ThreadContext *> &tcvec = sys->threadContexts;
|
|
||||||
BaseCPU *temp = tcvec[0]->getCpuPtr();
|
|
||||||
temp->clear_interrupt(int_num, index);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
IntrControl::clear(int cpu_id, int int_num, int index)
|
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<ThreadContext *> &tcvec = sys->threadContexts;
|
std::vector<ThreadContext *> &tcvec = sys->threadContexts;
|
||||||
BaseCPU *temp = tcvec[cpu_id]->getCpuPtr();
|
BaseCPU *cpu = tcvec[cpu_id]->getCpuPtr();
|
||||||
temp->clear_interrupt(int_num, index);
|
cpu->clear_interrupt(int_num, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
IntrControl *
|
IntrControl *
|
||||||
|
|
|
@ -47,10 +47,20 @@ class IntrControl : public SimObject
|
||||||
typedef IntrControlParams Params;
|
typedef IntrControlParams Params;
|
||||||
IntrControl(const Params *p);
|
IntrControl(const Params *p);
|
||||||
|
|
||||||
void clear(int int_num, int index = 0);
|
|
||||||
void post(int int_num, int index = 0);
|
|
||||||
void clear(int cpu_id, int int_num, int index);
|
void clear(int cpu_id, int int_num, int index);
|
||||||
void post(int cpu_id, int int_num, int index);
|
void post(int cpu_id, int int_num, int index);
|
||||||
|
|
||||||
|
void
|
||||||
|
clear(int int_num, int index = 0)
|
||||||
|
{
|
||||||
|
clear(0, int_num, index);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
post(int int_num, int index = 0)
|
||||||
|
{
|
||||||
|
post(0, int_num, index);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // __INTR_CONTROL_HH__
|
#endif // __INTR_CONTROL_HH__
|
||||||
|
|
Loading…
Reference in a new issue