i8259.cc (14290:fa11f961ae4e) i8259.cc (14291:722551795497)
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;

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

39X86ISA::I8259::I8259(Params * p)
40 : BasicPioDevice(p, 2),
41 latency(p->pio_latency),
42 mode(p->mode), slave(p->slave),
43 IRR(0), ISR(0), IMR(0),
44 readIRR(true), initControlWord(0), autoEOI(false)
45{
46 for (int i = 0; i < p->port_output_connection_count; i++) {
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;

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

39X86ISA::I8259::I8259(Params * p)
40 : BasicPioDevice(p, 2),
41 latency(p->pio_latency),
42 mode(p->mode), slave(p->slave),
43 IRR(0), ISR(0), IMR(0),
44 readIRR(true), initControlWord(0), autoEOI(false)
45{
46 for (int i = 0; i < p->port_output_connection_count; i++) {
47 output.push_back(new ::IntSourcePin<I8259>(
47 output.push_back(new IntSourcePin(
48 csprintf("%s.output[%d]", name(), i), i, this));
49 }
50
51 int in_count = p->port_inputs_connection_count;
52 panic_if(in_count >= NumLines,
53 "I8259 only supports 8 inputs, but there are %d.", in_count);
54 for (int i = 0; i < in_count; i++) {
48 csprintf("%s.output[%d]", name(), i), i, this));
49 }
50
51 int in_count = p->port_inputs_connection_count;
52 panic_if(in_count >= NumLines,
53 "I8259 only supports 8 inputs, but there are %d.", in_count);
54 for (int i = 0; i < in_count; i++) {
55 inputs.push_back(new ::IntSinkPin<I8259>(
55 inputs.push_back(new IntSinkPin(
56 csprintf("%s.inputs[%d]", name(), i), i, this));
57 }
58
59 for (bool &state: pinStates)
60 state = false;
61}
62
63void

--- 309 unchanged lines hidden ---
56 csprintf("%s.inputs[%d]", name(), i), i, this));
57 }
58
59 for (bool &state: pinStates)
60 state = false;
61}
62
63void

--- 309 unchanged lines hidden ---