arm: refactor packet processing in Pl390 GIC
[gem5.git] / src / dev / isa_fake.hh
index 366061c25462f217c7c7b2f27beaaff526f5ad1f..1223e3b22ec589e49153bbeb5b47821b07486574 100644 (file)
@@ -25,8 +25,7 @@
  * (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: Miguel Serrano
- *          Ali Saidi
+ * Authors: Ali Saidi
  */
 
 /** @file
 #ifndef __ISA_FAKE_HH__
 #define __ISA_FAKE_HH__
 
-#include "base/range.hh"
+#include <string>
+
 #include "dev/io_device.hh"
-#include "dev/tsunami.hh"
+// #include "dev/alpha/tsunami.hh"
 #include "mem/packet.hh"
+#include "params/IsaFake.hh"
 
 /**
- * IsaFake is a device that returns -1 on all reads and
- * accepts all writes. It is meant to be placed at an address range
+ * IsaFake is a device that returns, BadAddr, 1 or 0 on all reads and
+ *  rites. It is meant to be placed at an address range
  * so that an mcheck doesn't occur when an os probes a piece of hw
- * that doesn't exist (e.g. UARTs1-3).
+ * that doesn't exist (e.g. UARTs1-3), or catch requests in the memory system
+ * that have no responders..
  */
 class IsaFake : public BasicPioDevice
 {
-  public:
-    struct Params : public BasicPioDevice::Params
-    {
-        Addr pio_size;
-    };
   protected:
-    const Params *params() const { return (const Params*)_params; }
+    uint8_t retData8;
+    uint16_t retData16;
+    uint32_t retData32;
+    uint64_t retData64;
 
   public:
+    typedef IsaFakeParams Params;
+    const Params *
+    params() const
+    {
+        return dynamic_cast<const Params *>(_params);
+    }
     /**
-      * The constructor for Tsunmami Fake just registers itself with the MMU.
+      * The constructor for Isa Fake just registers itself with the MMU.
       * @param p params structure
       */
     IsaFake(Params *p);
@@ -79,4 +85,4 @@ class IsaFake : public BasicPioDevice
     virtual Tick write(PacketPtr pkt);
 };
 
-#endif // __TSUNAMI_FAKE_HH__
+#endif // __ISA_FAKE_HH__