diff options
Diffstat (limited to 'src/dev/x86')
-rw-r--r-- | src/dev/x86/SConscript | 2 | ||||
-rw-r--r-- | src/dev/x86/i82094aa.cc | 16 | ||||
-rw-r--r-- | src/dev/x86/i82094aa.hh | 3 | ||||
-rw-r--r-- | src/dev/x86/pc.cc | 9 | ||||
-rw-r--r-- | src/dev/x86/pc.hh | 6 |
5 files changed, 5 insertions, 31 deletions
diff --git a/src/dev/x86/SConscript b/src/dev/x86/SConscript index eeb68cf44..038e4824b 100644 --- a/src/dev/x86/SConscript +++ b/src/dev/x86/SConscript @@ -30,7 +30,7 @@ Import('*') -if env['FULL_SYSTEM'] and env['TARGET_ISA'] == 'x86': +if env['TARGET_ISA'] == 'x86': SimObject('Pc.py') Source('pc.cc') diff --git a/src/dev/x86/i82094aa.cc b/src/dev/x86/i82094aa.cc index 584090a9e..d9c07f5ae 100644 --- a/src/dev/x86/i82094aa.cc +++ b/src/dev/x86/i82094aa.cc @@ -30,6 +30,7 @@ #include "arch/x86/interrupts.hh" #include "arch/x86/intmessage.hh" +#include "cpu/base.hh" #include "debug/I82094AA.hh" #include "dev/x86/i82094aa.hh" #include "dev/x86/i8259.hh" @@ -196,13 +197,11 @@ X86ISA::I82094AA::signalInterrupt(int line) } } else { for (int i = 0; i < numContexts; i++) { - std::map<int, Interrupts *>::iterator localApicIt = - localApics.find(i); - assert(localApicIt != localApics.end()); - Interrupts *localApic = localApicIt->second; + Interrupts *localApic = sys->getThreadContext(i)-> + getCpuPtr()->getInterruptController(); if ((localApic->readReg(APIC_LOGICAL_DESTINATION) >> 24) & message.destination) { - apics.push_back(localApicIt->first); + apics.push_back(localApic->getInitialApicId()); } } if (message.deliveryMode == DeliveryMode::LowestPriority && @@ -245,13 +244,6 @@ X86ISA::I82094AA::lowerInterruptPin(int number) } void -X86ISA::I82094AA::registerLocalApic(int initialId, Interrupts *localApic) -{ - assert(localApic); - localApics[initialId] = localApic; -} - -void X86ISA::I82094AA::serialize(std::ostream &os) { uint64_t* redirTableArray = (uint64_t*)redirTable; diff --git a/src/dev/x86/i82094aa.hh b/src/dev/x86/i82094aa.hh index 0bcf8973d..dfef059c3 100644 --- a/src/dev/x86/i82094aa.hh +++ b/src/dev/x86/i82094aa.hh @@ -70,8 +70,6 @@ class I82094AA : public PioDevice, public IntDev I8259 * extIntPic; - std::map<int, Interrupts *> localApics; - uint8_t regSel; uint8_t initialApicId; uint8_t id; @@ -133,7 +131,6 @@ class I82094AA : public PioDevice, public IntDev void signalInterrupt(int line); void raiseInterruptPin(int number); void lowerInterruptPin(int number); - void registerLocalApic(int id, Interrupts *localApic); virtual void serialize(std::ostream &os); virtual void unserialize(Checkpoint *cp, const std::string §ion); diff --git a/src/dev/x86/pc.cc b/src/dev/x86/pc.cc index 7912a45e1..dd8e34d9e 100644 --- a/src/dev/x86/pc.cc +++ b/src/dev/x86/pc.cc @@ -55,8 +55,6 @@ Pc::Pc(const Params *p) : Platform(p), system(p->system) { southBridge = NULL; - // set the back pointer from the system to myself - system->platform = this; } void @@ -117,13 +115,6 @@ Pc::init() southBridge->pic2->maskAll(); } -Tick -Pc::intrFrequency() -{ - panic("Need implementation for intrFrequency\n"); - M5_DUMMY_RETURN -} - void Pc::postConsoleInt() { diff --git a/src/dev/x86/pc.hh b/src/dev/x86/pc.hh index 427cc4165..c999440d2 100644 --- a/src/dev/x86/pc.hh +++ b/src/dev/x86/pc.hh @@ -62,12 +62,6 @@ class Pc : public Platform Pc(const Params *p); /** - * Return the interrupting frequency to AlphaAccess - * @return frequency of RTC interrupts - */ - virtual Tick intrFrequency(); - - /** * Cause the cpu to post a serial interrupt to the CPU. */ virtual void postConsoleInt(); |