diff options
author | Gabe Black <gabeblack@google.com> | 2019-09-06 15:14:00 -0700 |
---|---|---|
committer | Gabe Black <gabeblack@google.com> | 2019-09-20 17:55:13 +0000 |
commit | 679ed0eec5e563a889b981231864e272c8e22c00 (patch) | |
tree | f591d3bc87e0e2daf2ad42d14495224d86b338bc | |
parent | ab376064bdfa9796eebad5ee8d84c766e7a30bd6 (diff) | |
download | gem5-679ed0eec5e563a889b981231864e272c8e22c00.tar.xz |
dev, x86: Delete the now unused X86 specific interrupt pins/lines.
Change-Id: I3915f0ad673119b551dcc4c5cedec180a9b88735
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/20702
Reviewed-by: Gabe Black <gabeblack@google.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
-rw-r--r-- | src/dev/x86/SConscript | 1 | ||||
-rw-r--r-- | src/dev/x86/X86IntPin.py | 54 | ||||
-rw-r--r-- | src/dev/x86/cmos.hh | 4 | ||||
-rw-r--r-- | src/dev/x86/i8042.cc | 4 | ||||
-rw-r--r-- | src/dev/x86/i8042.hh | 4 | ||||
-rw-r--r-- | src/dev/x86/i82094aa.cc | 2 | ||||
-rw-r--r-- | src/dev/x86/i82094aa.hh | 2 | ||||
-rw-r--r-- | src/dev/x86/i8254.hh | 4 | ||||
-rw-r--r-- | src/dev/x86/i8259.cc | 4 | ||||
-rw-r--r-- | src/dev/x86/i8259.hh | 4 | ||||
-rw-r--r-- | src/dev/x86/intdev.cc | 18 | ||||
-rw-r--r-- | src/dev/x86/intdev.hh | 105 |
12 files changed, 14 insertions, 192 deletions
diff --git a/src/dev/x86/SConscript b/src/dev/x86/SConscript index 331f0a229..4071cc8bd 100644 --- a/src/dev/x86/SConscript +++ b/src/dev/x86/SConscript @@ -65,6 +65,5 @@ if env['TARGET_ISA'] == 'x86': Source('i82094aa.cc') DebugFlag('I82094AA') - SimObject('X86IntPin.py') Source('intdev.cc') DebugFlag('IntDevice') diff --git a/src/dev/x86/X86IntPin.py b/src/dev/x86/X86IntPin.py deleted file mode 100644 index 53760b496..000000000 --- a/src/dev/x86/X86IntPin.py +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (c) 2008 The Regents of The University of Michigan -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer; -# redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution; -# neither the name of the copyright holders nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Authors: Gabe Black - -from m5.params import * -from m5.SimObject import SimObject - -# A generic pin to drive an interrupt signal generated by a device. -class X86IntSourcePin(SimObject): - type = 'X86IntSourcePin' - cxx_class = 'X86ISA::IntSourcePin' - cxx_header = "dev/x86/intdev.hh" - -# A generic pin to receive an interrupt signal generated by another device. -class X86IntSinkPin(SimObject): - type = 'X86IntSinkPin' - cxx_class = 'X86ISA::IntSinkPin' - cxx_header = "dev/x86/intdev.hh" - - device = Param.SimObject("Device this pin belongs to") - number = Param.Int("The pin number on the device") - -# An interrupt line which is driven by a source pin and drives a sink pin. -class X86IntLine(SimObject): - type = 'X86IntLine' - cxx_class = 'X86ISA::IntLine' - cxx_header = "dev/x86/intdev.hh" - - source = Param.X86IntSourcePin("Pin driving this line") - sink = Param.X86IntSinkPin("Pin driven by this line") diff --git a/src/dev/x86/cmos.hh b/src/dev/x86/cmos.hh index 2f662070d..b4ab8e796 100644 --- a/src/dev/x86/cmos.hh +++ b/src/dev/x86/cmos.hh @@ -56,14 +56,14 @@ class Cmos : public BasicPioDevice class X86RTC : public MC146818 { public: - std::vector<::IntSourcePin<X86RTC> *> intPin; + std::vector<IntSourcePin<X86RTC> *> intPin; X86RTC(EventManager *em, const std::string &n, const struct tm time, bool bcd, Tick frequency, int int_pin_count) : MC146818(em, n, time, bcd, frequency) { for (int i = 0; i < int_pin_count; i++) { - intPin.push_back(new ::IntSourcePin<X86RTC>( + intPin.push_back(new IntSourcePin<X86RTC>( csprintf("%s.int_pin[%d]", n, i), i, this)); } } diff --git a/src/dev/x86/i8042.cc b/src/dev/x86/i8042.cc index 2211df85b..3c3cceb2d 100644 --- a/src/dev/x86/i8042.cc +++ b/src/dev/x86/i8042.cc @@ -64,11 +64,11 @@ X86ISA::I8042::I8042(Params *p) commandByte.keyboardFullInt = 1; for (int i = 0; i < p->port_keyboard_int_pin_connection_count; i++) { - keyboardIntPin.push_back(new ::IntSourcePin<I8042>( + keyboardIntPin.push_back(new IntSourcePin<I8042>( csprintf("%s.keyboard_int_pin[%d]", name(), i), i, this)); } for (int i = 0; i < p->port_mouse_int_pin_connection_count; i++) { - mouseIntPin.push_back(new ::IntSourcePin<I8042>( + mouseIntPin.push_back(new IntSourcePin<I8042>( csprintf("%s.mouse_int_pin[%d]", name(), i), i, this)); } } diff --git a/src/dev/x86/i8042.hh b/src/dev/x86/i8042.hh index 5f62395dd..7faa760b6 100644 --- a/src/dev/x86/i8042.hh +++ b/src/dev/x86/i8042.hh @@ -108,8 +108,8 @@ class I8042 : public BasicPioDevice static const uint16_t NoCommand = (uint16_t)(-1); uint16_t lastCommand; - std::vector<::IntSourcePin<I8042> *> mouseIntPin; - std::vector<::IntSourcePin<I8042> *> keyboardIntPin; + std::vector<IntSourcePin<I8042> *> mouseIntPin; + std::vector<IntSourcePin<I8042> *> keyboardIntPin; PS2Device *mouse; PS2Device *keyboard; diff --git a/src/dev/x86/i82094aa.cc b/src/dev/x86/i82094aa.cc index 81f1c77ee..1fae67b09 100644 --- a/src/dev/x86/i82094aa.cc +++ b/src/dev/x86/i82094aa.cc @@ -59,7 +59,7 @@ X86ISA::I82094AA::I82094AA(Params *p) } for (int i = 0; i < p->port_inputs_connection_count; i++) - inputs.push_back(new ::IntSinkPin<I82094AA>( + inputs.push_back(new IntSinkPin<I82094AA>( csprintf("%s.inputs[%d]", name(), i), i, this)); } diff --git a/src/dev/x86/i82094aa.hh b/src/dev/x86/i82094aa.hh index 1c65fb310..b0764758a 100644 --- a/src/dev/x86/i82094aa.hh +++ b/src/dev/x86/i82094aa.hh @@ -82,7 +82,7 @@ class I82094AA : public BasicPioDevice, public IntDevice RedirTableEntry redirTable[TableSize]; bool pinStates[TableSize]; - std::vector<::IntSinkPin<I82094AA> *> inputs; + std::vector<IntSinkPin<I82094AA> *> inputs; public: typedef I82094AAParams Params; diff --git a/src/dev/x86/i8254.hh b/src/dev/x86/i8254.hh index 70a18b47c..084da8ed7 100644 --- a/src/dev/x86/i8254.hh +++ b/src/dev/x86/i8254.hh @@ -63,7 +63,7 @@ class I8254 : public BasicPioDevice X86Intel8254Timer pit; - std::vector<::IntSourcePin<I8254> *> intPin; + std::vector<IntSourcePin<I8254> *> intPin; void counterInterrupt(unsigned int num); @@ -89,7 +89,7 @@ class I8254 : public BasicPioDevice pit(p->name, this) { for (int i = 0; i < p->port_int_pin_connection_count; i++) { - intPin.push_back(new ::IntSourcePin<I8254>(csprintf( + intPin.push_back(new IntSourcePin<I8254>(csprintf( "%s.int_pin[%d]", name(), i), i, this)); } } diff --git a/src/dev/x86/i8259.cc b/src/dev/x86/i8259.cc index 06e3bf659..a2141e5c6 100644 --- a/src/dev/x86/i8259.cc +++ b/src/dev/x86/i8259.cc @@ -44,7 +44,7 @@ X86ISA::I8259::I8259(Params * p) readIRR(true), initControlWord(0), autoEOI(false) { for (int i = 0; i < p->port_output_connection_count; i++) { - output.push_back(new ::IntSourcePin<I8259>( + output.push_back(new IntSourcePin<I8259>( csprintf("%s.output[%d]", name(), i), i, this)); } @@ -52,7 +52,7 @@ X86ISA::I8259::I8259(Params * p) panic_if(in_count >= NumLines, "I8259 only supports 8 inputs, but there are %d.", in_count); for (int i = 0; i < in_count; i++) { - inputs.push_back(new ::IntSinkPin<I8259>( + inputs.push_back(new IntSinkPin<I8259>( csprintf("%s.inputs[%d]", name(), i), i, this)); } diff --git a/src/dev/x86/i8259.hh b/src/dev/x86/i8259.hh index 8cc12f0be..f9f0afff8 100644 --- a/src/dev/x86/i8259.hh +++ b/src/dev/x86/i8259.hh @@ -48,8 +48,8 @@ class I8259 : public BasicPioDevice void init() override; Tick latency; - std::vector<::IntSourcePin<I8259> *> output; - std::vector<::IntSinkPin<I8259> *> inputs; + std::vector<IntSourcePin<I8259> *> output; + std::vector<IntSinkPin<I8259> *> inputs; Enums::X86I8259CascadeMode mode; I8259 * slave; diff --git a/src/dev/x86/intdev.cc b/src/dev/x86/intdev.cc index a35f76b5f..e6c068a27 100644 --- a/src/dev/x86/intdev.cc +++ b/src/dev/x86/intdev.cc @@ -70,21 +70,3 @@ X86ISA::IntDevice::init() panic("Int port not connected to anything!"); } } - -X86ISA::IntSourcePin * -X86IntSourcePinParams::create() -{ - return new X86ISA::IntSourcePin(this); -} - -X86ISA::IntSinkPin * -X86IntSinkPinParams::create() -{ - return new X86ISA::IntSinkPin(this); -} - -X86ISA::IntLine * -X86IntLineParams::create() -{ - return new X86ISA::IntLine(this); -} diff --git a/src/dev/x86/intdev.hh b/src/dev/x86/intdev.hh index 2e3e99df0..0cc2be032 100644 --- a/src/dev/x86/intdev.hh +++ b/src/dev/x86/intdev.hh @@ -50,9 +50,6 @@ #include "arch/x86/intmessage.hh" #include "arch/x86/x86_traits.hh" #include "mem/mport.hh" -#include "params/X86IntLine.hh" -#include "params/X86IntSinkPin.hh" -#include "params/X86IntSourcePin.hh" #include "sim/sim_object.hh" namespace X86ISA { @@ -121,24 +118,6 @@ class IntDevice virtual void init(); - virtual void - signalInterrupt(int line) - { - panic("signalInterrupt not implemented.\n"); - } - - virtual void - raiseInterruptPin(int number) - { - panic("raiseInterruptPin not implemented.\n"); - } - - virtual void - lowerInterruptPin(int number) - { - panic("lowerInterruptPin not implemented.\n"); - } - virtual Tick recvMessage(PacketPtr pkt) { @@ -160,90 +139,6 @@ class IntDevice } }; -class IntSinkPin : public SimObject -{ - public: - IntDevice * device; - int number; - - typedef X86IntSinkPinParams Params; - - const Params * - params() const - { - return dynamic_cast<const Params *>(_params); - } - - IntSinkPin(Params *p) : SimObject(p), - device(dynamic_cast<IntDevice *>(p->device)), number(p->number) - { - assert(device); - } -}; - -class IntSourcePin : public SimObject -{ - protected: - std::vector<IntSinkPin *> sinks; - - public: - typedef X86IntSourcePinParams Params; - - const Params * - params() const - { - return dynamic_cast<const Params *>(_params); - } - - void - addSink(IntSinkPin *sink) - { - sinks.push_back(sink); - } - - void - raise() - { - for (int i = 0; i < sinks.size(); i++) { - const IntSinkPin &pin = *sinks[i]; - pin.device->raiseInterruptPin(pin.number); - } - } - - void - lower() - { - for (int i = 0; i < sinks.size(); i++) { - const IntSinkPin &pin = *sinks[i]; - pin.device->lowerInterruptPin(pin.number); - } - } - - IntSourcePin(Params *p) : SimObject(p) - {} -}; - -class IntLine : public SimObject -{ - protected: - IntSourcePin *source; - IntSinkPin *sink; - - public: - typedef X86IntLineParams Params; - - const Params * - params() const - { - return dynamic_cast<const Params *>(_params); - } - - IntLine(Params *p) : SimObject(p), source(p->source), sink(p->sink) - { - source->addSink(sink); - } -}; - } // namespace X86ISA #endif //__DEV_X86_INTDEV_HH__ |