interrupts.cc (8768:314eb1e2fa94) | interrupts.cc (8781:dc1bc37bfb00) |
---|---|
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 --- 26 unchanged lines hidden (view full) --- 35 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 * 37 * Authors: Gabe Black 38 */ 39 40#include "arch/x86/regs/apic.hh" 41#include "arch/x86/interrupts.hh" 42#include "arch/x86/intmessage.hh" | 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 --- 26 unchanged lines hidden (view full) --- 35 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 36 * 37 * Authors: Gabe Black 38 */ 39 40#include "arch/x86/regs/apic.hh" 41#include "arch/x86/interrupts.hh" 42#include "arch/x86/intmessage.hh" |
43#include "config/full_system.hh" | |
44#include "cpu/base.hh" 45#include "debug/LocalApic.hh" 46#include "dev/x86/i82094aa.hh" 47#include "dev/x86/pc.hh" 48#include "dev/x86/south_bridge.hh" 49#include "mem/packet_access.hh" 50#include "sim/system.hh" | 43#include "cpu/base.hh" 44#include "debug/LocalApic.hh" 45#include "dev/x86/i82094aa.hh" 46#include "dev/x86/pc.hh" 47#include "dev/x86/south_bridge.hh" 48#include "mem/packet_access.hh" 49#include "sim/system.hh" |
50#include "sim/full_system.hh" |
|
51 52int 53divideFromConf(uint32_t conf) 54{ 55 // This figures out what division we want from the division configuration 56 // register in the local APIC. The encoding is a little odd but it can 57 // be deciphered fairly easily. 58 int shift = ((conf & 0x8) >> 1) | (conf & 0x3); --- 211 unchanged lines hidden (view full) --- 270 pendingUnmaskableInt = pendingInit = true; 271 initVector = vector; 272 } else if (deliveryMode == DeliveryMode::SIPI && 273 !pendingStartup && !startedUp) { 274 pendingUnmaskableInt = pendingStartup = true; 275 startupVector = vector; 276 } 277 } | 51 52int 53divideFromConf(uint32_t conf) 54{ 55 // This figures out what division we want from the division configuration 56 // register in the local APIC. The encoding is a little odd but it can 57 // be deciphered fairly easily. 58 int shift = ((conf & 0x8) >> 1) | (conf & 0x3); --- 211 unchanged lines hidden (view full) --- 270 pendingUnmaskableInt = pendingInit = true; 271 initVector = vector; 272 } else if (deliveryMode == DeliveryMode::SIPI && 273 !pendingStartup && !startedUp) { 274 pendingUnmaskableInt = pendingStartup = true; 275 startupVector = vector; 276 } 277 } |
278#if FULL_SYSTEM //XXX CPU has no wakeup method in SE mode. 279 cpu->wakeup(); 280#endif | 278 if (FullSystem) 279 cpu->wakeup(); |
281} 282 283 284void 285X86ISA::Interrupts::setCPU(BaseCPU * newCPU) 286{ 287 assert(newCPU); 288 if (cpu != NULL && cpu->cpuId() != newCPU->cpuId()) { --- 491 unchanged lines hidden --- | 280} 281 282 283void 284X86ISA::Interrupts::setCPU(BaseCPU * newCPU) 285{ 286 assert(newCPU); 287 if (cpu != NULL && cpu->cpuId() != newCPU->cpuId()) { --- 491 unchanged lines hidden --- |