diff options
Diffstat (limited to 'src/mem')
-rw-r--r-- | src/mem/cache/cache.cc | 10 | ||||
-rw-r--r-- | src/mem/packet.hh | 15 |
2 files changed, 14 insertions, 11 deletions
diff --git a/src/mem/cache/cache.cc b/src/mem/cache/cache.cc index c03b5b2a8..28c4343d1 100644 --- a/src/mem/cache/cache.cc +++ b/src/mem/cache/cache.cc @@ -416,7 +416,7 @@ Cache::access(PacketPtr pkt, CacheBlk *&blk, Cycles &lat, } // nothing else to do; writeback doesn't expect response assert(!pkt->needsResponse()); - std::memcpy(blk->data, pkt->getConstPtr<uint8_t>(), blkSize); + pkt->writeDataToBlock(blk->data, blkSize); DPRINTF(Cache, "%s new state is %s\n", __func__, blk->print()); incHitCount(pkt); // populate the time when the block will be ready to access. @@ -477,7 +477,7 @@ Cache::access(PacketPtr pkt, CacheBlk *&blk, Cycles &lat, } // nothing else to do; writeback doesn't expect response assert(!pkt->needsResponse()); - std::memcpy(blk->data, pkt->getConstPtr<uint8_t>(), blkSize); + pkt->writeDataToBlock(blk->data, blkSize); DPRINTF(Cache, "%s new state is %s\n", __func__, blk->print()); incHitCount(pkt); @@ -1684,7 +1684,7 @@ Cache::writebackBlk(CacheBlk *blk) blk->status &= ~BlkDirty; pkt->allocate(); - std::memcpy(pkt->getPtr<uint8_t>(), blk->data, blkSize); + pkt->setDataFromBlock(blk->data, blkSize); return pkt; } @@ -1722,7 +1722,7 @@ Cache::writecleanBlk(CacheBlk *blk, Request::Flags dest, PacketId id) blk->status &= ~BlkDirty; pkt->allocate(); - std::memcpy(pkt->getPtr<uint8_t>(), blk->data, blkSize); + pkt->setDataFromBlock(blk->data, blkSize); return pkt; } @@ -1970,7 +1970,7 @@ Cache::handleFill(PacketPtr pkt, CacheBlk *blk, PacketList &writebacks, assert(pkt->hasData()); assert(pkt->getSize() == blkSize); - std::memcpy(blk->data, pkt->getConstPtr<uint8_t>(), blkSize); + pkt->writeDataToBlock(blk->data, blkSize); } // We pay for fillLatency here. blk->whenReady = clockEdge() + fillLatency * clockPeriod() + diff --git a/src/mem/packet.hh b/src/mem/packet.hh index 66625b382..b5b882c91 100644 --- a/src/mem/packet.hh +++ b/src/mem/packet.hh @@ -324,10 +324,10 @@ class Packet : public Printable private: /** - * A pointer to the data being transfered. It can be differnt - * sizes at each level of the heirarchy so it belongs in the + * A pointer to the data being transferred. It can be different + * sizes at each level of the hierarchy so it belongs to the * packet, not request. This may or may not be populated when a - * responder recieves the packet. If not populated it memory should + * responder receives the packet. If not populated memory should * be allocated. */ PacketDataPtr data; @@ -1096,8 +1096,8 @@ class Packet : public Printable } /** - * Copy data from the packet to the provided block pointer, which - * is aligned to the given block size. + * Copy data from the packet to the memory at the provided pointer. + * @param p Pointer to which data will be copied. */ void writeData(uint8_t *p) const @@ -1106,7 +1106,10 @@ class Packet : public Printable } /** - * Copy data from the packet to the memory at the provided pointer. + * Copy data from the packet to the provided block pointer, which + * is aligned to the given block size. + * @param blk_data Pointer to block to which data will be copied. + * @param blkSize Block size in bytes. */ void writeDataToBlock(uint8_t *blk_data, int blkSize) const |