added serializeation code
authorAli Saidi <saidi@eecs.umich.edu>
Wed, 11 Feb 2004 20:32:30 +0000 (15:32 -0500)
committerAli Saidi <saidi@eecs.umich.edu>
Wed, 11 Feb 2004 20:32:30 +0000 (15:32 -0500)
--HG--
extra : convert_revision : 468f3c739707d167af43562695b604fd7dead661

dev/tsunami_cchip.cc
dev/tsunami_io.cc
dev/tsunami_pchip.cc
dev/tsunami_uart.cc

index 374c50d6614a0093ab696e8fa172202315075c48..cdef6202ed8bc5e67425fbddd35021f990341f10 100644 (file)
@@ -279,13 +279,23 @@ TsunamiCChip::clearDRIR(uint64_t bitvector)
 void
 TsunamiCChip::serialize(std::ostream &os)
 {
-    // code should be written
+    SERIALIZE_ARRAY(dim, Tsunami::Max_CPUs);
+    SERIALIZE_ARRAY(dir, Tsunami::Max_CPUs);
+    SERIALIZE_ARRAY(dirInterrupting, Tsunami::Max_CPUs);
+    SERIALIZE_SCALAR(drir);
+    SERIALIZE_SCALAR(misc);
+    SERIALIZE_SCALAR(RTCInterrupting);
 }
 
 void
 TsunamiCChip::unserialize(Checkpoint *cp, const std::string &section)
 {
-    //code should be written
+    UNSERIALIZE_ARRAY(dim, Tsunami::Max_CPUs);
+    UNSERIALIZE_ARRAY(dir, Tsunami::Max_CPUs);
+    UNSERIALIZE_ARRAY(dirInterrupting, Tsunami::Max_CPUs);
+    UNSERIALIZE_SCALAR(drir);
+    UNSERIALIZE_SCALAR(misc);
+    UNSERIALIZE_SCALAR(RTCInterrupting);
 }
 
 BEGIN_DECLARE_SIM_OBJECT_PARAMS(TsunamiCChip)
index dd2ac3acc3e83d0a3a1ae45be4030f4a3b8ba9d4..65e411a06cd4ac98585e3a60b733cfa05872503e 100644 (file)
@@ -346,13 +346,35 @@ TsunamiIO::clearPIC(uint8_t bitvector)
 void
 TsunamiIO::serialize(std::ostream &os)
 {
-    // code should be written
+    SERIALIZE_SCALAR(timerData);
+    SERIALIZE_SCALAR(uip);
+    SERIALIZE_SCALAR(picr);
+    SERIALIZE_SCALAR(picInterrupting);
+    Tick time0when = timer0.when();
+    Tick time2when = timer2.when();
+    Tick rtcwhen = rtc.when();
+    SERIALIZE_SCALAR(time0when);
+    SERIALIZE_SCALAR(time2when);
+    SERIALIZE_SCALAR(rtcwhen);
+
 }
 
 void
 TsunamiIO::unserialize(Checkpoint *cp, const std::string &section)
 {
-    //code should be written
+    UNSERIALIZE_SCALAR(timerData);
+    UNSERIALIZE_SCALAR(uip);
+    UNSERIALIZE_SCALAR(picr);
+    UNSERIALIZE_SCALAR(picInterrupting);
+    Tick time0when;
+    Tick time2when;
+    Tick rtcwhen;
+    UNSERIALIZE_SCALAR(time0when);
+    UNSERIALIZE_SCALAR(time2when);
+    UNSERIALIZE_SCALAR(rtcwhen);
+    timer0.reschedule(time0when);
+    timer2.reschedule(time2when);
+    rtc.reschedule(rtcwhen);
 }
 
 BEGIN_DECLARE_SIM_OBJECT_PARAMS(TsunamiIO)
index b67bd476dcaedc47b766cba44930e33fe218c9c2..449f4f0cbf9d5ee735f5fbb780d79801f525bbbd 100644 (file)
@@ -227,13 +227,37 @@ TsunamiPChip::write(MemReqPtr &req, const uint8_t *data)
 void
 TsunamiPChip::serialize(std::ostream &os)
 {
-    // code should be written
+    SERIALIZE_SCALAR(wsba0);
+    SERIALIZE_SCALAR(wsba1);
+    SERIALIZE_SCALAR(wsba2);
+    SERIALIZE_SCALAR(wsba3);
+    SERIALIZE_SCALAR(wsm0);
+    SERIALIZE_SCALAR(wsm1);
+    SERIALIZE_SCALAR(wsm2);
+    SERIALIZE_SCALAR(wsm3);
+    SERIALIZE_SCALAR(tba0);
+    SERIALIZE_SCALAR(tba1);
+    SERIALIZE_SCALAR(tba2);
+    SERIALIZE_SCALAR(tba3);
+
 }
 
 void
 TsunamiPChip::unserialize(Checkpoint *cp, const std::string &section)
 {
-    //code should be written
+    UNSERIALIZE_SCALAR(wsba0);
+    UNSERIALIZE_SCALAR(wsba1);
+    UNSERIALIZE_SCALAR(wsba2);
+    UNSERIALIZE_SCALAR(wsba3);
+    UNSERIALIZE_SCALAR(wsm0);
+    UNSERIALIZE_SCALAR(wsm1);
+    UNSERIALIZE_SCALAR(wsm2);
+    UNSERIALIZE_SCALAR(wsm3);
+    UNSERIALIZE_SCALAR(tba0);
+    UNSERIALIZE_SCALAR(tba1);
+    UNSERIALIZE_SCALAR(tba2);
+    UNSERIALIZE_SCALAR(tba3);
+
 }
 
 BEGIN_DECLARE_SIM_OBJECT_PARAMS(TsunamiPChip)
index ab9236081f01deffb125f02ad3e5d990fc35bcd1..4b9e7a76bb12bf29b8011d174c1b40c3b5e007bd 100644 (file)
@@ -117,7 +117,6 @@ TsunamiUart::read(MemReqPtr &req, uint8_t *data)
             *data = 0;
         return No_Fault;
       case 0xA:
-        //*data = 2<<6; // This means a 8250 serial port, do we want a 16550?
         *data = 0; // This means a 8250 serial port, do we want a 16550?
         return No_Fault;
     }
@@ -183,6 +182,7 @@ TsunamiUart::serialize(ostream &os)
     SERIALIZE_SCALAR(status_store);
     SERIALIZE_SCALAR(next_char);
     SERIALIZE_SCALAR(valid_char);
+    SERIALIZE_SCALAR(IER);
 }
 
 void
@@ -191,6 +191,7 @@ TsunamiUart::unserialize(Checkpoint *cp, const std::string &section)
     UNSERIALIZE_SCALAR(status_store);
     UNSERIALIZE_SCALAR(next_char);
     UNSERIALIZE_SCALAR(valid_char);
+    UNSERIALIZE_SCALAR(IER);
 }
 
 BEGIN_DECLARE_SIM_OBJECT_PARAMS(TsunamiUart)