changeset 703f42dbca21 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=703f42dbca21
description:
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.
diffstat:
src/dev/pktfifo.hh | 14 +++++++++-----
src/dev/sinic.cc | 6 +++---
src/dev/sinic.hh | 2 +-
3 files changed, 13 insertions(+), 9 deletions(-)
diffs (94 lines):
diff -r e7f403b6b76f -r 703f42dbca21 src/dev/pktfifo.hh
--- a/src/dev/pktfifo.hh Fri Aug 07 09:59:13 2015 +0100
+++ b/src/dev/pktfifo.hh Fri Aug 07 09:59:14 2015 +0100
@@ -80,6 +80,7 @@
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 @@
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 @@
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 -r e7f403b6b76f -r 703f42dbca21 src/dev/sinic.cc
--- a/src/dev/sinic.cc Fri Aug 07 09:59:13 2015 +0100
+++ b/src/dev/sinic.cc Fri Aug 07 09:59:14 2015 +0100
@@ -1303,7 +1303,7 @@
}
void
-Device::serializeOld(CheckpointOut &cp)
+Device::serialize(CheckpointOut &cp) const
{
int count;
@@ -1345,7 +1345,7 @@
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 @@
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 -r e7f403b6b76f -r 703f42dbca21 src/dev/sinic.hh
--- a/src/dev/sinic.hh Fri Aug 07 09:59:13 2015 +0100
+++ b/src/dev/sinic.hh Fri Aug 07 09:59:14 2015 +0100
@@ -297,7 +297,7 @@
* 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:
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev