summaryrefslogtreecommitdiff
path: root/src/arch/x86/interrupts.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-04-19 02:16:49 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-04-19 02:16:49 -0700
commitf668340f2cda609d263d47b8a00c5b138e8c499f (patch)
tree47836abf3a4354f0c9d3aebea3ee5cfc7cf185d0 /src/arch/x86/interrupts.hh
parent79a3a6aecb2f92bc3faf96881f92fa5fb7dbbe4f (diff)
downloadgem5-f668340f2cda609d263d47b8a00c5b138e8c499f.tar.xz
X86: Set the local APIC ID to something meaningful.
Diffstat (limited to 'src/arch/x86/interrupts.hh')
-rw-r--r--src/arch/x86/interrupts.hh38
1 files changed, 4 insertions, 34 deletions
diff --git a/src/arch/x86/interrupts.hh b/src/arch/x86/interrupts.hh
index c5e3bde0d..34ea992d1 100644
--- a/src/arch/x86/interrupts.hh
+++ b/src/arch/x86/interrupts.hh
@@ -191,11 +191,7 @@ class Interrupts : public BasicPioDevice, IntDev
*/
typedef X86LocalApicParams Params;
- void
- setCPU(BaseCPU * newCPU)
- {
- cpu = newCPU;
- }
+ void setCPU(BaseCPU * newCPU);
void
setClock(Tick newClock)
@@ -225,19 +221,8 @@ class Interrupts : public BasicPioDevice, IntDev
return entry.periodic;
}
- void addressRanges(AddrRangeList &range_list)
- {
- range_list.clear();
- range_list.push_back(RangeEx(x86LocalAPICAddress(0, 0),
- x86LocalAPICAddress(0, 0) + PageBytes));
- }
-
- void getIntAddrRange(AddrRangeList &range_list)
- {
- range_list.clear();
- range_list.push_back(RangeEx(x86InterruptAddress(0, 0),
- x86InterruptAddress(0, 0) + PhysAddrAPICRangeSize));
- }
+ void addressRanges(AddrRangeList &range_list);
+ void getIntAddrRange(AddrRangeList &range_list);
Port *getPort(const std::string &if_name, int idx = -1)
{
@@ -262,22 +247,7 @@ class Interrupts : public BasicPioDevice, IntDev
* Constructor.
*/
- Interrupts(Params * p)
- : BasicPioDevice(p), IntDev(this), latency(p->pio_latency), clock(0),
- apicTimerEvent(this),
- pendingSmi(false), smiVector(0),
- pendingNmi(false), nmiVector(0),
- pendingExtInt(false), extIntVector(0),
- pendingInit(false), initVector(0),
- pendingUnmaskableInt(false)
- {
- pioSize = PageBytes;
- memset(regs, 0, sizeof(regs));
- //Set the local apic DFR to the flat model.
- regs[APIC_DESTINATION_FORMAT] = (uint32_t)(-1);
- ISRV = 0;
- IRRV = 0;
- }
+ Interrupts(Params * p);
/*
* Functions for retrieving interrupts for the CPU to handle.