diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2011-10-04 02:26:03 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2011-10-04 02:26:03 -0700 |
commit | d3683440923051607ae96974fb2bdc5783993bf4 (patch) | |
tree | 45b500db2e2dd4cca5fc00f2fbb7371e488d1a51 /src/arch/x86/interrupts.cc | |
parent | e2dbe59f5dd63ad7a84df701dfbd033320cb8bf9 (diff) | |
download | gem5-d3683440923051607ae96974fb2bdc5783993bf4.tar.xz |
SE/FS: Put platform pointers in fewer objects.
Not all objects need a platform pointer, and having one creates a dependence
on their being a platform object. This change removes the platform pointer to
from the base device object and moves it into subclasses that actually need
it.
Diffstat (limited to 'src/arch/x86/interrupts.cc')
-rw-r--r-- | src/arch/x86/interrupts.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/arch/x86/interrupts.cc b/src/arch/x86/interrupts.cc index 7d6f6e35e..81cb306dc 100644 --- a/src/arch/x86/interrupts.cc +++ b/src/arch/x86/interrupts.cc @@ -302,10 +302,11 @@ 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 } @@ -613,6 +614,9 @@ 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)); |