cpu: remove unnecessary data ptr from O3 internal read() funcs
[gem5.git] / src / dev / uart.hh
index f0ae0854c02fc0dda6ab18b6f60e905d5447c0bc..6c9c08ee7cab27b3ce6ff7fc4ee21643d420c754 100644 (file)
 #ifndef __UART_HH__
 #define __UART_HH__
 
-#include "base/range.hh"
 #include "dev/io_device.hh"
+#include "dev/terminal.hh"
+#include "params/Uart.hh"
 
-class SimConsole;
 class Platform;
 
 const int RX_INT = 0x1;
 const int TX_INT = 0x2;
 
-
 class Uart : public BasicPioDevice
 {
-
   protected:
     int status;
     Platform *platform;
-    SimConsole *cons;
+    Terminal *term;
 
   public:
-    struct Params : public BasicPioDevice::Params
-    {
-        SimConsole *cons;
-    };
+    typedef UartParams Params;
+    Uart(const Params *p, Addr pio_size);
 
-    Uart(Params *p);
+    const Params *
+    params() const
+    {
+        return dynamic_cast<const Params *>(_params);
+    }
 
     /**
      * Inform the uart that there is data available.
      */
     virtual void dataAvailable() = 0;
 
-
     /**
      * Return if we have an interrupt pending
      * @return interrupt status
@@ -74,8 +73,7 @@ class Uart : public BasicPioDevice
     bool intStatus() { return status ? true : false; }
 
   protected:
-    const Params *params() const {return (const Params *)_params; }
-
+    MakeCallback<Uart, &Uart::dataAvailable> callbackDataAvail;
 };
 
 #endif // __UART_HH__