i8259.cc (5632:65132fd646c6) i8259.cc (5634:22553ec2f177)
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;

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

134 initControlWord++;
135 } else {
136 cascadeBits = 0;
137 initControlWord = 0;
138 }
139 break;
140 case 0x2:
141 DPRINTF(I8259, "Received initialization command word 3.\n");
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;

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

134 initControlWord++;
135 } else {
136 cascadeBits = 0;
137 initControlWord = 0;
138 }
139 break;
140 case 0x2:
141 DPRINTF(I8259, "Received initialization command word 3.\n");
142 if (master == NULL) {
142 if (mode == Enums::I8259Master) {
143 DPRINTF(I8259, "Slaves attached to IRQs:%s%s%s%s%s%s%s%s\n",
144 bits(val, 0) ? " 0" : "",
145 bits(val, 1) ? " 1" : "",
146 bits(val, 2) ? " 2" : "",
147 bits(val, 3) ? " 3" : "",
148 bits(val, 4) ? " 4" : "",
149 bits(val, 5) ? " 5" : "",
150 bits(val, 6) ? " 6" : "",

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

187void
188X86ISA::I8259::signalInterrupt(int line)
189{
190 DPRINTF(I8259, "Interrupt raised on line %d.\n", line);
191 if (line > 7)
192 fatal("Line number %d doesn't exist. The max is 7.\n");
193 if (bits(IMR, line)) {
194 DPRINTF(I8259, "Interrupt %d was masked.\n", line);
143 DPRINTF(I8259, "Slaves attached to IRQs:%s%s%s%s%s%s%s%s\n",
144 bits(val, 0) ? " 0" : "",
145 bits(val, 1) ? " 1" : "",
146 bits(val, 2) ? " 2" : "",
147 bits(val, 3) ? " 3" : "",
148 bits(val, 4) ? " 4" : "",
149 bits(val, 5) ? " 5" : "",
150 bits(val, 6) ? " 6" : "",

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

187void
188X86ISA::I8259::signalInterrupt(int line)
189{
190 DPRINTF(I8259, "Interrupt raised on line %d.\n", line);
191 if (line > 7)
192 fatal("Line number %d doesn't exist. The max is 7.\n");
193 if (bits(IMR, line)) {
194 DPRINTF(I8259, "Interrupt %d was masked.\n", line);
195 } else if (master != NULL) {
196 DPRINTF(I8259, "Propogating interrupt to master.\n");
197 master->signalInterrupt(cascadeBits);
195 } else {
196 if (output) {
197 DPRINTF(I8259, "Propogating interrupt.\n");
198 output->signalInterrupt();
199 } else {
200 warn("Received interrupt but didn't have "
201 "anyone to tell about it.\n");
202 }
198 }
199}
200
201X86ISA::I8259 *
202I8259Params::create()
203{
204 return new X86ISA::I8259(this);
205}
203 }
204}
205
206X86ISA::I8259 *
207I8259Params::create()
208{
209 return new X86ISA::I8259(this);
210}