summaryrefslogtreecommitdiff
path: root/src/dev
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev')
-rw-r--r--src/dev/x86/i82094aa.cc7
-rw-r--r--src/dev/x86/i82094aa.hh6
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