interrupts.cc (11793:ef606668d247) | interrupts.cc (12124:6edbfe40f4e8) |
---|---|
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 --- 574 unchanged lines hidden (view full) --- 583 } 584 regs[reg] = newVal; 585 return; 586} 587 588 589X86ISA::Interrupts::Interrupts(Params * p) 590 : BasicPioDevice(p, PageBytes), IntDevice(this, p->int_latency), | 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 --- 574 unchanged lines hidden (view full) --- 583 } 584 regs[reg] = newVal; 585 return; 586} 587 588 589X86ISA::Interrupts::Interrupts(Params * p) 590 : BasicPioDevice(p, PageBytes), IntDevice(this, p->int_latency), |
591 apicTimerEvent(this), | 591 apicTimerEvent([this]{ processApicTimerEvent(); }, name()), |
592 pendingSmi(false), smiVector(0), 593 pendingNmi(false), nmiVector(0), 594 pendingExtInt(false), extIntVector(0), 595 pendingInit(false), initVector(0), 596 pendingStartup(false), startupVector(0), 597 startedUp(false), pendingUnmaskableInt(false), 598 pendingIPIs(0), cpu(NULL), 599 intSlavePort(name() + ".int_slave", this, this) --- 162 unchanged lines hidden (view full) --- 762 } 763} 764 765X86ISA::Interrupts * 766X86LocalApicParams::create() 767{ 768 return new X86ISA::Interrupts(this); 769} | 592 pendingSmi(false), smiVector(0), 593 pendingNmi(false), nmiVector(0), 594 pendingExtInt(false), extIntVector(0), 595 pendingInit(false), initVector(0), 596 pendingStartup(false), startupVector(0), 597 startedUp(false), pendingUnmaskableInt(false), 598 pendingIPIs(0), cpu(NULL), 599 intSlavePort(name() + ".int_slave", this, this) --- 162 unchanged lines hidden (view full) --- 762 } 763} 764 765X86ISA::Interrupts * 766X86LocalApicParams::create() 767{ 768 return new X86ISA::Interrupts(this); 769} |
770 771void 772X86ISA::Interrupts::processApicTimerEvent() { 773 if (triggerTimerInterrupt()) 774 setReg(APIC_INITIAL_COUNT, readReg(APIC_INITIAL_COUNT)); 775} |
|