summaryrefslogtreecommitdiff
path: root/src/dev/x86/i8259.hh
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-01-31 23:33:54 -0800
committerGabe Black <gblack@eecs.umich.edu>2009-01-31 23:33:54 -0800
commit6a3f255a84d93f3e621319fd81f355416e385c8c (patch)
treee6dd2386d3989fdd3169d66a14c1a057463ca323 /src/dev/x86/i8259.hh
parent64b663c6071ecd58eff6dacd38ee351038259427 (diff)
downloadgem5-6a3f255a84d93f3e621319fd81f355416e385c8c.tar.xz
X86: Rework interrupt pins to allow one to many connections.
Diffstat (limited to 'src/dev/x86/i8259.hh')
-rw-r--r--src/dev/x86/i8259.hh11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/dev/x86/i8259.hh b/src/dev/x86/i8259.hh
index 5a2cf72e8..dfb56646a 100644
--- a/src/dev/x86/i8259.hh
+++ b/src/dev/x86/i8259.hh
@@ -45,9 +45,10 @@ class I8259 : public BasicPioDevice, public IntDev
{
protected:
static const int NumLines = 8;
+ bool pinStates[NumLines];
Tick latency;
- IntPin *output;
+ IntSourcePin *output;
Enums::X86I8259CascadeMode mode;
I8259 * slave;
@@ -90,16 +91,12 @@ class I8259 : public BasicPioDevice, public IntDev
I8259(Params * p);
- void
- setSlave(I8259 * _slave)
- {
- slave = _slave;
- }
-
Tick read(PacketPtr pkt);
Tick write(PacketPtr pkt);
void signalInterrupt(int line);
+ void raiseInterruptPin(int number);
+ void lowerInterruptPin(int number);
int getVector();
};