diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2008-10-12 13:28:54 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2008-10-12 13:28:54 -0700 |
commit | 557bde43c331024eb5cecf4093a24a5b7a9cc266 (patch) | |
tree | b5bf7d105deb94b19098c431263aa6304bcae333 /src/arch/x86/interrupts.cc | |
parent | e4590131825d27293d9642d2ac118ff03cc894f4 (diff) | |
download | gem5-557bde43c331024eb5cecf4093a24a5b7a9cc266.tar.xz |
X86: Make APICs communicate through the memory system.
Diffstat (limited to 'src/arch/x86/interrupts.cc')
-rw-r--r-- | src/arch/x86/interrupts.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/arch/x86/interrupts.cc b/src/arch/x86/interrupts.cc index 6f1920de0..5614a37eb 100644 --- a/src/arch/x86/interrupts.cc +++ b/src/arch/x86/interrupts.cc @@ -239,6 +239,27 @@ X86ISA::Interrupts::write(PacketPtr pkt) return latency; } +Tick +X86ISA::Interrupts::recvMessage(PacketPtr pkt) +{ + Addr offset = pkt->getAddr() - x86InterruptAddress(0, 0); + assert(pkt->cmd == MemCmd::MessageReq); + switch(offset) + { + case 0: + DPRINTF(LocalApic, "Got Trigger Interrupt message.\n"); + break; + default: + panic("Local apic got unknown interrupt message at offset %#x.\n", + offset); + break; + } + delete pkt->req; + delete pkt; + return latency; +} + + uint32_t X86ISA::Interrupts::readReg(ApicRegIndex reg) { |