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 ---