interrupts.cc (7900:8b05ff5ef958) | interrupts.cc (7902:aafb4a7384d4) |
---|---|
1/* 2 * Copyright (c) 2008 The Hewlett-Packard Development Company 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 --- 692 unchanged lines hidden (view full) --- 701 ISRV = IRRV; 702 setRegArrayBit(APIC_IN_SERVICE_BASE, ISRV); 703 // Clear it out of the IRR. 704 clearRegArrayBit(APIC_INTERRUPT_REQUEST_BASE, IRRV); 705 updateIRRV(); 706 } 707} 708 | 1/* 2 * Copyright (c) 2008 The Hewlett-Packard Development Company 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 --- 692 unchanged lines hidden (view full) --- 701 ISRV = IRRV; 702 setRegArrayBit(APIC_IN_SERVICE_BASE, ISRV); 703 // Clear it out of the IRR. 704 clearRegArrayBit(APIC_INTERRUPT_REQUEST_BASE, IRRV); 705 updateIRRV(); 706 } 707} 708 |
709void 710X86ISA::Interrupts::serialize(std::ostream &os) 711{ 712 SERIALIZE_ARRAY(regs, NUM_APIC_REGS); 713 SERIALIZE_SCALAR(clock); 714 SERIALIZE_SCALAR(pendingSmi); 715 SERIALIZE_SCALAR(smiVector); 716 SERIALIZE_SCALAR(pendingNmi); 717 SERIALIZE_SCALAR(nmiVector); 718 SERIALIZE_SCALAR(pendingExtInt); 719 SERIALIZE_SCALAR(extIntVector); 720 SERIALIZE_SCALAR(pendingInit); 721 SERIALIZE_SCALAR(initVector); 722 SERIALIZE_SCALAR(pendingStartup); 723 SERIALIZE_SCALAR(startupVector); 724 SERIALIZE_SCALAR(startedUp); 725 SERIALIZE_SCALAR(pendingUnmaskableInt); 726 SERIALIZE_SCALAR(pendingIPIs); 727 SERIALIZE_SCALAR(IRRV); 728 SERIALIZE_SCALAR(ISRV); 729 bool apicTimerEventScheduled = apicTimerEvent.scheduled(); 730 SERIALIZE_SCALAR(apicTimerEventScheduled); 731 Tick apicTimerEventTick = apicTimerEvent.when(); 732 SERIALIZE_SCALAR(apicTimerEventTick); 733} 734 735void 736X86ISA::Interrupts::unserialize(Checkpoint *cp, const std::string §ion) 737{ 738 UNSERIALIZE_ARRAY(regs, NUM_APIC_REGS); 739 UNSERIALIZE_SCALAR(clock); 740 UNSERIALIZE_SCALAR(pendingSmi); 741 UNSERIALIZE_SCALAR(smiVector); 742 UNSERIALIZE_SCALAR(pendingNmi); 743 UNSERIALIZE_SCALAR(nmiVector); 744 UNSERIALIZE_SCALAR(pendingExtInt); 745 UNSERIALIZE_SCALAR(extIntVector); 746 UNSERIALIZE_SCALAR(pendingInit); 747 UNSERIALIZE_SCALAR(initVector); 748 UNSERIALIZE_SCALAR(pendingStartup); 749 UNSERIALIZE_SCALAR(startupVector); 750 UNSERIALIZE_SCALAR(startedUp); 751 UNSERIALIZE_SCALAR(pendingUnmaskableInt); 752 UNSERIALIZE_SCALAR(pendingIPIs); 753 UNSERIALIZE_SCALAR(IRRV); 754 UNSERIALIZE_SCALAR(ISRV); 755 bool apicTimerEventScheduled; 756 UNSERIALIZE_SCALAR(apicTimerEventScheduled); 757 if (apicTimerEventScheduled) { 758 Tick apicTimerEventTick; 759 UNSERIALIZE_SCALAR(apicTimerEventTick); 760 if (apicTimerEvent.scheduled()) { 761 reschedule(apicTimerEvent, apicTimerEventTick, true); 762 } else { 763 schedule(apicTimerEvent, apicTimerEventTick); 764 } 765 } 766} 767 |
|
709X86ISA::Interrupts * 710X86LocalApicParams::create() 711{ 712 return new X86ISA::Interrupts(this); 713} | 768X86ISA::Interrupts * 769X86LocalApicParams::create() 770{ 771 return new X86ISA::Interrupts(this); 772} |