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}