diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2008-10-12 13:54:57 -0700 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2008-10-12 13:54:57 -0700 |
commit | 3a1905157eec2ed80eaf2ddb8be69cb2f509dfee (patch) | |
tree | 036a4079a56b09dab9492bc926b426cb773ce604 /src/dev/x86/i8259.hh | |
parent | c35da8e495e9f2697a252e8e828e6d7760a8a2db (diff) | |
download | gem5-3a1905157eec2ed80eaf2ddb8be69cb2f509dfee.tar.xz |
X86: Create a mechanism for the IO APIC to access I8259 vectors.
Diffstat (limited to 'src/dev/x86/i8259.hh')
-rw-r--r-- | src/dev/x86/i8259.hh | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/dev/x86/i8259.hh b/src/dev/x86/i8259.hh index 107cd015c..371a27874 100644 --- a/src/dev/x86/i8259.hh +++ b/src/dev/x86/i8259.hh @@ -39,12 +39,17 @@ namespace X86ISA { +class I82094AA; + class I8259 : public BasicPioDevice, public IntDev { protected: + static const int NumLines = 8; + Tick latency; IntPin *output; Enums::X86I8259CascadeMode mode; + I8259 * slave; // Interrupt Request Register uint8_t IRR; @@ -77,19 +82,19 @@ class I8259 : public BasicPioDevice, public IntDev return dynamic_cast<const Params *>(_params); } - I8259(Params * p) : BasicPioDevice(p), IntDev(this), - latency(p->pio_latency), output(p->output), - mode(p->mode), IRR(0), ISR(0), IMR(0), - vectorOffset(0), readIRR(true), initControlWord(0) + I8259(Params * p); + + void + setSlave(I8259 * _slave) { - pioSize = 2; + slave = _slave; } Tick read(PacketPtr pkt); - Tick write(PacketPtr pkt); void signalInterrupt(int line); + int getVector(); }; }; // namespace X86ISA |