interrupts.cc (9805:a4339e26b429) | interrupts.cc (9807:63d7362bbdf2) |
---|---|
1/* 2 * Copyright (c) 2012-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 297 unchanged lines hidden (view full) --- 306 pioAddr = x86LocalAPICAddress(initialApicId, 0); 307} 308 309 310void 311X86ISA::Interrupts::init() 312{ 313 // | 1/* 2 * Copyright (c) 2012-2013 ARM Limited 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software --- 297 unchanged lines hidden (view full) --- 306 pioAddr = x86LocalAPICAddress(initialApicId, 0); 307} 308 309 310void 311X86ISA::Interrupts::init() 312{ 313 // |
314 // The local apic must register its address ranges on both its pio port 315 // via the basicpiodevice(piodevice) init() function and its int port 316 // that it inherited from IntDev. Note IntDev is not a SimObject itself. | 314 // The local apic must register its address ranges on both its pio 315 // port via the basicpiodevice(piodevice) init() function and its 316 // int port that it inherited from IntDevice. Note IntDevice is 317 // not a SimObject itself. |
317 // 318 BasicPioDevice::init(); | 318 // 319 BasicPioDevice::init(); |
319 IntDev::init(); | 320 IntDevice::init(); |
320 321 // the slave port has a range so inform the connected master 322 intSlavePort.sendRangeChange(); 323} 324 325 326Tick 327X86ISA::Interrupts::recvMessage(PacketPtr pkt) --- 273 unchanged lines hidden (view full) --- 601 default: 602 break; 603 } 604 regs[reg] = newVal; 605 return; 606} 607 608 | 321 322 // the slave port has a range so inform the connected master 323 intSlavePort.sendRangeChange(); 324} 325 326 327Tick 328X86ISA::Interrupts::recvMessage(PacketPtr pkt) --- 273 unchanged lines hidden (view full) --- 602 default: 603 break; 604 } 605 regs[reg] = newVal; 606 return; 607} 608 609 |
609X86ISA::Interrupts::Interrupts(Params * p) : 610 BasicPioDevice(p), IntDev(this, p->int_latency), 611 apicTimerEvent(this), 612 pendingSmi(false), smiVector(0), 613 pendingNmi(false), nmiVector(0), 614 pendingExtInt(false), extIntVector(0), 615 pendingInit(false), initVector(0), 616 pendingStartup(false), startupVector(0), 617 startedUp(false), pendingUnmaskableInt(false), 618 pendingIPIs(0), cpu(NULL), 619 intSlavePort(name() + ".int_slave", this, this) | 610X86ISA::Interrupts::Interrupts(Params * p) 611 : BasicPioDevice(p), IntDevice(this, p->int_latency), 612 apicTimerEvent(this), 613 pendingSmi(false), smiVector(0), 614 pendingNmi(false), nmiVector(0), 615 pendingExtInt(false), extIntVector(0), 616 pendingInit(false), initVector(0), 617 pendingStartup(false), startupVector(0), 618 startedUp(false), pendingUnmaskableInt(false), 619 pendingIPIs(0), cpu(NULL), 620 intSlavePort(name() + ".int_slave", this, this) |
620{ 621 pioSize = PageBytes; 622 memset(regs, 0, sizeof(regs)); 623 //Set the local apic DFR to the flat model. 624 regs[APIC_DESTINATION_FORMAT] = (uint32_t)(-1); 625 ISRV = 0; 626 IRRV = 0; 627} --- 155 unchanged lines hidden --- | 621{ 622 pioSize = PageBytes; 623 memset(regs, 0, sizeof(regs)); 624 //Set the local apic DFR to the flat model. 625 regs[APIC_DESTINATION_FORMAT] = (uint32_t)(-1); 626 ISRV = 0; 627 IRRV = 0; 628} --- 155 unchanged lines hidden --- |