diff options
Diffstat (limited to 'src/dev/x86')
-rw-r--r-- | src/dev/x86/i82094aa.cc | 7 | ||||
-rw-r--r-- | src/dev/x86/i82094aa.hh | 6 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/dev/x86/i82094aa.cc b/src/dev/x86/i82094aa.cc index e55f1ec87..3f0ed9e96 100644 --- a/src/dev/x86/i82094aa.cc +++ b/src/dev/x86/i82094aa.cc @@ -182,6 +182,13 @@ X86ISA::I82094AA::lowerInterruptPin(int number) pinStates[number] = false; } +void +X86ISA::I82094AA::registerLocalApic(int initialId, Interrupts *localApic) +{ + assert(localApic); + localApics[initialId] = localApic; +} + X86ISA::I82094AA * I82094AAParams::create() { diff --git a/src/dev/x86/i82094aa.hh b/src/dev/x86/i82094aa.hh index 7501259c1..e81d85fa9 100644 --- a/src/dev/x86/i82094aa.hh +++ b/src/dev/x86/i82094aa.hh @@ -37,10 +37,13 @@ #include "dev/x86/intdev.hh" #include "params/I82094AA.hh" +#include <map> + namespace X86ISA { class I8259; +class Interrupts; class I82094AA : public PioDevice, public IntDev { @@ -67,6 +70,8 @@ class I82094AA : public PioDevice, public IntDev I8259 * extIntPic; + std::map<int, Interrupts *> localApics; + uint8_t regSel; uint8_t initialApicId; uint8_t id; @@ -122,6 +127,7 @@ class I82094AA : public PioDevice, public IntDev void signalInterrupt(int line); void raiseInterruptPin(int number); void lowerInterruptPin(int number); + void registerLocalApic(int id, Interrupts *localApic); }; }; // namespace X86ISA |