interrupts.hh (8711:c7e14f52c682) interrupts.hh (8742:9df38d259935)
1/*
2 * Copyright (c) 2007 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

--- 30 unchanged lines hidden (view full) ---

39
40#ifndef __ARCH_X86_INTERRUPTS_HH__
41#define __ARCH_X86_INTERRUPTS_HH__
42
43#include "arch/x86/regs/apic.hh"
44#include "arch/x86/faults.hh"
45#include "arch/x86/intmessage.hh"
46#include "base/bitfield.hh"
1/*
2 * Copyright (c) 2007 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

--- 30 unchanged lines hidden (view full) ---

39
40#ifndef __ARCH_X86_INTERRUPTS_HH__
41#define __ARCH_X86_INTERRUPTS_HH__
42
43#include "arch/x86/regs/apic.hh"
44#include "arch/x86/faults.hh"
45#include "arch/x86/intmessage.hh"
46#include "base/bitfield.hh"
47#include "config/full_system.hh"
47#include "cpu/thread_context.hh"
48#include "dev/x86/intdev.hh"
49#include "dev/io_device.hh"
50#include "params/X86LocalApic.hh"
51#include "sim/eventq.hh"
52
53class ThreadContext;
54class BaseCPU;

--- 115 unchanged lines hidden (view full) ---

170 }
171
172 void requestInterrupt(uint8_t vector, uint8_t deliveryMode, bool level);
173
174 BaseCPU *cpu;
175
176 int initialApicId;
177
48#include "cpu/thread_context.hh"
49#include "dev/x86/intdev.hh"
50#include "dev/io_device.hh"
51#include "params/X86LocalApic.hh"
52#include "sim/eventq.hh"
53
54class ThreadContext;
55class BaseCPU;

--- 115 unchanged lines hidden (view full) ---

171 }
172
173 void requestInterrupt(uint8_t vector, uint8_t deliveryMode, bool level);
174
175 BaseCPU *cpu;
176
177 int initialApicId;
178
179#if FULL_SYSTEM
180 Platform *platform;
181#endif
182
178 public:
179 /*
180 * Params stuff.
181 */
182 typedef X86LocalApicParams Params;
183
184 void setCPU(BaseCPU * newCPU);
185

--- 26 unchanged lines hidden (view full) ---

212 triggerTimerInterrupt()
213 {
214 LVTEntry entry = regs[APIC_LVT_TIMER];
215 if (!entry.masked)
216 requestInterrupt(entry.vector, entry.deliveryMode, entry.trigger);
217 return entry.periodic;
218 }
219
183 public:
184 /*
185 * Params stuff.
186 */
187 typedef X86LocalApicParams Params;
188
189 void setCPU(BaseCPU * newCPU);
190

--- 26 unchanged lines hidden (view full) ---

217 triggerTimerInterrupt()
218 {
219 LVTEntry entry = regs[APIC_LVT_TIMER];
220 if (!entry.masked)
221 requestInterrupt(entry.vector, entry.deliveryMode, entry.trigger);
222 return entry.periodic;
223 }
224
220 AddrRangeList getAddrRanges();
221 AddrRangeList getIntAddrRange();
225 void addressRanges(AddrRangeList &range_list);
226 void getIntAddrRange(AddrRangeList &range_list);
222
223 Port *getPort(const std::string &if_name, int idx = -1)
224 {
225 if (if_name == "int_port")
226 return intPort;
227 return BasicPioDevice::getPort(if_name, idx);
228 }
229

--- 59 unchanged lines hidden ---
227
228 Port *getPort(const std::string &if_name, int idx = -1)
229 {
230 if (if_name == "int_port")
231 return intPort;
232 return BasicPioDevice::getPort(if_name, idx);
233 }
234

--- 59 unchanged lines hidden ---