summaryrefslogtreecommitdiff
path: root/src/dev/x86/i8259.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2008-10-11 01:45:25 -0700
committerGabe Black <gblack@eecs.umich.edu>2008-10-11 01:45:25 -0700
commit539563e04b4925e88c28cb44f5180915c3b3a5be (patch)
treede3c6c045eff66c6ba6e5f29589bb20c7c3e9ad1 /src/dev/x86/i8259.hh
parent119e127d7128edfb729101b92ca160c1f01391ca (diff)
downloadgem5-539563e04b4925e88c28cb44f5180915c3b3a5be.tar.xz
X86: Make the CMOS and I8259 devices use IntDev and IntPin.
Diffstat (limited to 'src/dev/x86/i8259.hh')
-rw-r--r--src/dev/x86/i8259.hh15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/dev/x86/i8259.hh b/src/dev/x86/i8259.hh
index c51ab1a6a..f38644222 100644
--- a/src/dev/x86/i8259.hh
+++ b/src/dev/x86/i8259.hh
@@ -32,16 +32,19 @@
#define __DEV_X86_I8259_HH__
#include "dev/io_device.hh"
+#include "dev/x86/intdev.hh"
#include "params/I8259.hh"
+#include "enums/X86I8259CascadeMode.hh"
namespace X86ISA
{
-class I8259 : public BasicPioDevice
+class I8259 : public BasicPioDevice, public IntDev
{
protected:
Tick latency;
- I8259 *master;
+ IntPin *output;
+ Enums::X86I8259CascadeMode mode;
// Interrupt Request Register
uint8_t IRR;
@@ -71,13 +74,11 @@ class I8259 : public BasicPioDevice
return dynamic_cast<const Params *>(_params);
}
- I8259(Params * p) : BasicPioDevice(p)
+ I8259(Params * p) : BasicPioDevice(p), latency(p->pio_latency),
+ output(p->output), mode(p->mode), readIRR(true),
+ initControlWord(0)
{
pioSize = 2;
- initControlWord = 0;
- readIRR = true;
- latency = p->pio_latency;
- master = p->master;
}
Tick read(PacketPtr pkt);