summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Sandberg <andreas.sandberg@arm.com>2015-08-07 09:59:14 +0100
committerAndreas Sandberg <andreas.sandberg@arm.com>2015-08-07 09:59:14 +0100
commitaf6b51925cb5032dd2c670bd2c21912b732c6fc1 (patch)
tree9cdd524ee3c00895847153a099087c1ec02ab098
parent53e777d6838ac3ca80e6557626f9e99fd93dd0f7 (diff)
downloadgem5-af6b51925cb5032dd2c670bd2c21912b732c6fc1.tar.xz
dev: Make serialization in Sinic constant
This changeset transitions the Sinic device to the new serialization framework that requires the serialization method to be constant.
-rw-r--r--src/dev/pktfifo.hh14
-rw-r--r--src/dev/sinic.cc6
-rw-r--r--src/dev/sinic.hh2
3 files changed, 13 insertions, 9 deletions
diff --git a/src/dev/pktfifo.hh b/src/dev/pktfifo.hh
index 95d46fc76..ea5803026 100644
--- a/src/dev/pktfifo.hh
+++ b/src/dev/pktfifo.hh
@@ -80,6 +80,7 @@ class PacketFifo
typedef std::list<PacketFifoEntry> fifo_list;
typedef fifo_list::iterator iterator;
+ typedef fifo_list::const_iterator const_iterator;
protected:
std::list<PacketFifoEntry> fifo;
@@ -112,6 +113,9 @@ class PacketFifo
iterator begin() { return fifo.begin(); }
iterator end() { return fifo.end(); }
+ const_iterator begin() const { return fifo.begin(); }
+ const_iterator end() const { return fifo.end(); }
+
EthPacketPtr front() { return fifo.begin()->packet; }
bool push(EthPacketPtr ptr)
@@ -171,25 +175,25 @@ class PacketFifo
bool copyout(void *dest, unsigned offset, unsigned len);
- int countPacketsBefore(iterator i)
+ int countPacketsBefore(const_iterator i) const
{
if (i == fifo.end())
return 0;
return i->number - fifo.begin()->number;
}
- int countPacketsAfter(iterator i)
+ int countPacketsAfter(const_iterator i) const
{
- iterator end = fifo.end();
+ auto end = fifo.end();
if (i == end)
return 0;
return (--end)->number - i->number;
}
- void check()
+ void check() const
{
unsigned total = 0;
- for (iterator i = begin(); i != end(); ++i)
+ for (auto i = begin(); i != end(); ++i)
total += i->packet->length + i->slack;
if (total != _size)
diff --git a/src/dev/sinic.cc b/src/dev/sinic.cc
index a17f50864..e2b9e28fb 100644
--- a/src/dev/sinic.cc
+++ b/src/dev/sinic.cc
@@ -1303,7 +1303,7 @@ Base::unserialize(CheckpointIn &cp)
}
void
-Device::serializeOld(CheckpointOut &cp)
+Device::serialize(CheckpointOut &cp) const
{
int count;
@@ -1345,7 +1345,7 @@ Device::serializeOld(CheckpointOut &cp)
paramOut(cp, reg + ".rxPacketExists", rxPacketExists);
if (rxPacketExists) {
int rxPacket = 0;
- PacketFifo::iterator i = rxFifo.begin();
+ auto i = rxFifo.begin();
while (i != vnic->rxIndex) {
assert(i != rxFifo.end());
++i;
@@ -1369,7 +1369,7 @@ Device::serializeOld(CheckpointOut &cp)
SERIALIZE_SCALAR(rxDirtyCount);
SERIALIZE_SCALAR(rxMappedCount);
- VirtualList::iterator i, end;
+ VirtualList::const_iterator i, end;
for (count = 0, i = rxList.begin(), end = rxList.end(); i != end; ++i)
paramOut(cp, csprintf("rxList%d", count++), *i);
int rxListSize = count;
diff --git a/src/dev/sinic.hh b/src/dev/sinic.hh
index f0645a807..41a629af1 100644
--- a/src/dev/sinic.hh
+++ b/src/dev/sinic.hh
@@ -297,7 +297,7 @@ class Device : public Base
* Serialization stuff
*/
public:
- void serializeOld(CheckpointOut &cp) M5_ATTR_OVERRIDE;
+ void serialize(CheckpointOut &cp) const M5_ATTR_OVERRIDE;
void unserialize(CheckpointIn &cp) M5_ATTR_OVERRIDE;
public: