1/* 2 * Copyright (c) 2004-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 228 unchanged lines hidden (view full) --- 237 "anyone to tell about it.\n"); 238 } 239 } 240} 241 242void 243X86ISA::I8259::signalInterrupt(int line) 244{ |
245 DPRINTF(I8259, "Interrupt requested for line %d.\n", line); |
246 if (line >= NumLines) 247 fatal("Line number %d doesn't exist. The max is %d.\n", 248 line, NumLines - 1); 249 if (bits(IMR, line)) { 250 DPRINTF(I8259, "Interrupt %d was masked.\n", line); 251 } else { 252 IRR |= 1 << line; 253 requestInterrupt(line); 254 } 255} 256 257void 258X86ISA::I8259::raiseInterruptPin(int number) 259{ |
260 DPRINTF(I8259, "Interrupt signal raised for pin %d.\n", number); |
261 if (number >= NumLines) 262 fatal("Line number %d doesn't exist. The max is %d.\n", 263 number, NumLines - 1); 264 if (!pinStates[number]) 265 signalInterrupt(number); 266 pinStates[number] = true; 267} 268 269void 270X86ISA::I8259::lowerInterruptPin(int number) 271{ |
272 DPRINTF(I8259, "Interrupt signal lowered for pin %d.\n", number); |
273 if (number >= NumLines) 274 fatal("Line number %d doesn't exist. The max is %d.\n", 275 number, NumLines - 1); 276 pinStates[number] = false; 277} 278 279int 280X86ISA::I8259::getVector() --- 28 unchanged lines hidden --- |