From 6dc3b2fa395601852cb3efff302229907b1759f8 Mon Sep 17 00:00:00 2001 From: Ali Saidi Date: Thu, 20 Apr 2006 17:14:30 -0400 Subject: make ide disk work for newmem SConscript: compile ide devices base/chunk_generator.hh: add another parameter to the chuck generator called complete() which returns the number of bytes transfered so far. Very useful for adding to a pointer. configs/test/fs.py: Add ide disk to fs test configuration dev/ide_ctrl.cc: dev/ide_ctrl.hh: dev/ide_disk.cc: dev/ide_disk.hh: dev/io_device.cc: dev/io_device.hh: dev/pciconfigall.cc: dev/pciconfigall.hh: dev/pcidev.cc: dev/pcidev.hh: update for new memory system mem/bus.cc: support devices that return multiple ranges remove old ranges before using new info mem/packet.hh: make senderstate void* per steve's request that we use every construct possible in C++ mem/physical.cc: have memory stamp the packet with the time. mem/physical.hh: actually set the memory latency variable python/m5/objects/Device.py: Add DmaDevice python/m5/objects/Ide.py: Ide disk no longer has a physmem pointer python/m5/objects/Pci.py: update pci device for newmem python/m5/objects/PhysicalMemory.py: add latency parameter for physical memory sim/byteswap.hh: use fast architecture dependent byteswap calls if they exist --HG-- extra : convert_revision : e3cf2e8f61064ad302d94bc22010a00c59f3f793 --- base/chunk_generator.hh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'base/chunk_generator.hh') diff --git a/base/chunk_generator.hh b/base/chunk_generator.hh index 1dca50db4..4f708bd4b 100644 --- a/base/chunk_generator.hh +++ b/base/chunk_generator.hh @@ -62,6 +62,8 @@ class ChunkGenerator int curSize; /** The number of bytes remaining in the region after the current chunk. */ int sizeLeft; + /** The start address so we can calculate offset in writing block. */ + const Addr startAddr; /** The maximum chunk size, e.g., the cache block size or page size. */ const int chunkSize; @@ -73,8 +75,8 @@ class ChunkGenerator * @param _chunkSize The size/alignment of chunks into which * the region should be decomposed. */ - ChunkGenerator(Addr startAddr, int totalSize, int _chunkSize) - : chunkSize(_chunkSize) + ChunkGenerator(Addr _startAddr, int totalSize, int _chunkSize) + : startAddr(_startAddr), chunkSize(_chunkSize) { // chunkSize must be a power of two assert(chunkSize == 0 || isPowerOf2(chunkSize)); @@ -107,6 +109,8 @@ class ChunkGenerator /** Return size in bytes of current chunk. */ int size() { return curSize; } + /** Number of bytes we have already chunked up. */ + int complete() { return curAddr - startAddr; } /** * Are we done? That is, did the last call to next() advance * past the end of the region? -- cgit v1.2.3