summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2011-10-09 04:44:02 -0700
committerGabe Black <gblack@eecs.umich.edu>2011-10-09 04:44:02 -0700
commit48b40cff650cb071b189826af2f2e1f78434f49b (patch)
treecdd36ce1e5caec2f5846f310801053ea91952c03 /src/arch
parentf338d60930e973d330d13715b8617c22b980dcca (diff)
downloadgem5-48b40cff650cb071b189826af2f2e1f78434f49b.tar.xz
Interrupts: Make the IO APIC go get the local APICs.
This is so they don't have to declare themselves to the IO APIC and don't have to have a pointer to the platform object.
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/X86LocalApic.py3
-rw-r--r--src/arch/x86/interrupts.cc8
-rw-r--r--src/arch/x86/interrupts.hh7
3 files changed, 3 insertions, 15 deletions
diff --git a/src/arch/x86/X86LocalApic.py b/src/arch/x86/X86LocalApic.py
index cfb225240..2f53c4e24 100644
--- a/src/arch/x86/X86LocalApic.py
+++ b/src/arch/x86/X86LocalApic.py
@@ -38,6 +38,3 @@ class X86LocalApic(BasicPioDevice):
int_port = Port("Port for sending and receiving interrupt messages")
int_latency = Param.Latency('1ns', \
"Latency for an interrupt to propagate through this device.")
- if buildEnv['FULL_SYSTEM']: # No platform in SE mode.
- platform = Param.Platform(Parent.any,
- "Platform this device is part of.")
diff --git a/src/arch/x86/interrupts.cc b/src/arch/x86/interrupts.cc
index 55b5bdca9..38b966dbe 100644
--- a/src/arch/x86/interrupts.cc
+++ b/src/arch/x86/interrupts.cc
@@ -304,11 +304,6 @@ X86ISA::Interrupts::init()
//
BasicPioDevice::init();
IntDev::init();
-#if FULL_SYSTEM
- Pc * pc = dynamic_cast<Pc *>(platform);
- assert(pc);
- pc->southBridge->ioApic->registerLocalApic(initialApicId, this);
-#endif
}
@@ -616,9 +611,6 @@ X86ISA::Interrupts::Interrupts(Params * p) :
pendingStartup(false), startupVector(0),
startedUp(false), pendingUnmaskableInt(false),
pendingIPIs(0), cpu(NULL)
-#if FULL_SYSTEM
- , platform(p->platform)
-#endif
{
pioSize = PageBytes;
memset(regs, 0, sizeof(regs));
diff --git a/src/arch/x86/interrupts.hh b/src/arch/x86/interrupts.hh
index 46e5e5cad..03b4c97b3 100644
--- a/src/arch/x86/interrupts.hh
+++ b/src/arch/x86/interrupts.hh
@@ -176,11 +176,10 @@ class Interrupts : public BasicPioDevice, IntDev
int initialApicId;
-#if FULL_SYSTEM
- Platform *platform;
-#endif
-
public:
+
+ int getInitialApicId() { return initialApicId; }
+
/*
* Params stuff.
*/