interrupts.hh (5654:340254de2031) | interrupts.hh (5655:74f76480407f) |
---|---|
1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 46 unchanged lines hidden (view full) --- 55 * Authors: Gabe Black 56 */ 57 58#ifndef __ARCH_X86_INTERRUPTS_HH__ 59#define __ARCH_X86_INTERRUPTS_HH__ 60 61#include "arch/x86/apicregs.hh" 62#include "arch/x86/faults.hh" | 1/* 2 * Copyright (c) 2007 The Hewlett-Packard Development Company 3 * All rights reserved. 4 * 5 * Redistribution and use of this software in source and binary forms, 6 * with or without modification, are permitted provided that the 7 * following conditions are met: 8 * --- 46 unchanged lines hidden (view full) --- 55 * Authors: Gabe Black 56 */ 57 58#ifndef __ARCH_X86_INTERRUPTS_HH__ 59#define __ARCH_X86_INTERRUPTS_HH__ 60 61#include "arch/x86/apicregs.hh" 62#include "arch/x86/faults.hh" |
63#include "arch/x86/intmessage.hh" |
|
63#include "base/bitfield.hh" 64#include "cpu/thread_context.hh" 65#include "dev/io_device.hh" 66#include "dev/x86/intdev.hh" 67#include "params/X86LocalApic.hh" 68#include "sim/eventq.hh" 69 70class ThreadContext; --- 23 unchanged lines hidden (view full) --- 94 { 95 warn("Local APIC timer event doesn't do anything!\n"); 96 } 97 }; 98 99 ApicTimerEvent apicTimerEvent; 100 101 /* | 64#include "base/bitfield.hh" 65#include "cpu/thread_context.hh" 66#include "dev/io_device.hh" 67#include "dev/x86/intdev.hh" 68#include "params/X86LocalApic.hh" 69#include "sim/eventq.hh" 70 71class ThreadContext; --- 23 unchanged lines hidden (view full) --- 95 { 96 warn("Local APIC timer event doesn't do anything!\n"); 97 } 98 }; 99 100 ApicTimerEvent apicTimerEvent; 101 102 /* |
103 * A set of variables to keep track of interrupts that don't go through 104 * the IRR. 105 */ 106 bool pendingSmi; 107 TriggerIntMessage smiMessage; 108 bool pendingNmi; 109 TriggerIntMessage nmiMessage; 110 bool pendingExtInt; 111 TriggerIntMessage extIntMessage; 112 bool pendingInit; 113 TriggerIntMessage initMessage; 114 115 // This is a quick check whether any of the above (except ExtInt) are set. 116 bool pendingUnmaskableInt; 117 118 /* |
|
102 * IRR and ISR maintenance. 103 */ 104 uint8_t IRRV; 105 uint8_t ISRV; 106 107 int 108 findRegArrayMSB(ApicRegIndex base) 109 { --- 92 unchanged lines hidden (view full) --- 202 regs[reg] = val; 203 } 204 205 /* 206 * Constructor. 207 */ 208 209 Interrupts(Params * p) : BasicPioDevice(p), IntDev(this), | 119 * IRR and ISR maintenance. 120 */ 121 uint8_t IRRV; 122 uint8_t ISRV; 123 124 int 125 findRegArrayMSB(ApicRegIndex base) 126 { --- 92 unchanged lines hidden (view full) --- 219 regs[reg] = val; 220 } 221 222 /* 223 * Constructor. 224 */ 225 226 Interrupts(Params * p) : BasicPioDevice(p), IntDev(this), |
210 latency(p->pio_latency), clock(0) | 227 latency(p->pio_latency), clock(0), 228 pendingSmi(false), smiMessage(0), 229 pendingNmi(false), nmiMessage(0), 230 pendingExtInt(false), extIntMessage(0), 231 pendingInit(false), initMessage(0), 232 pendingUnmaskableInt(false) |
211 { 212 pioSize = PageBytes; 213 memset(regs, 0, sizeof(regs)); 214 //Set the local apic DFR to the flat model. 215 regs[APIC_DESTINATION_FORMAT] = (uint32_t)(-1); 216 ISRV = 0; 217 IRRV = 0; 218 } --- 46 unchanged lines hidden --- | 233 { 234 pioSize = PageBytes; 235 memset(regs, 0, sizeof(regs)); 236 //Set the local apic DFR to the flat model. 237 regs[APIC_DESTINATION_FORMAT] = (uint32_t)(-1); 238 ISRV = 0; 239 IRRV = 0; 240 } --- 46 unchanged lines hidden --- |