i8259.cc (5827:ac2c268bf4f1) | i8259.cc (5830:1758d56964c9) |
---|---|
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{ | 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 raised on line %d.\n", line); | 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{ | 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); |
|
260 if (number >= NumLines) 261 fatal("Line number %d doesn't exist. The max is %d.\n", 262 number, NumLines - 1); 263 if (!pinStates[number]) 264 signalInterrupt(number); 265 pinStates[number] = true; 266} 267 268void 269X86ISA::I8259::lowerInterruptPin(int number) 270{ | 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); |
|
271 if (number >= NumLines) 272 fatal("Line number %d doesn't exist. The max is %d.\n", 273 number, NumLines - 1); 274 pinStates[number] = false; 275} 276 277int 278X86ISA::I8259::getVector() --- 28 unchanged lines hidden --- | 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 --- |