summaryrefslogtreecommitdiff
path: root/base/chunk_generator.hh
diff options
context:
space:
mode:
authorRon Dreslinski <rdreslin@umich.edu>2006-02-23 13:51:54 -0500
committerRon Dreslinski <rdreslin@umich.edu>2006-02-23 13:51:54 -0500
commit8fc06589cbf28b2a5bf13384d1c683dc50f68a8a (patch)
tree48e22202d8b38239b06811256f500661901652be /base/chunk_generator.hh
parentceac38e41c5c0a7131d7581244713d33b5fff521 (diff)
downloadgem5-8fc06589cbf28b2a5bf13384d1c683dc50f68a8a.tar.xz
Update functional memory to have a response event
Clean out old memory python files, move them into old_mem directory. Maybe we should just delete them, they are under revision control. Add new py files for new objects. SConscript: Update because memory is just a header file now base/chunk_generator.hh: Make Chunk Generator return the entire size if the chunk_size is set to zero. Useful when trying to chunck on blocksize of memory, which can write large pieces of data. cpu/simple/cpu.cc: Make sure to delete the pkt. mem/physical.cc: mem/physical.hh: Set up response event. mem/port.cc: Rename rqst to req to conform to same standard naming convention. python/m5/objects/PhysicalMemory.py: Update the params, inheritence --HG-- extra : convert_revision : 857154ec256522baf423b715833930497999549b
Diffstat (limited to 'base/chunk_generator.hh')
-rw-r--r--base/chunk_generator.hh17
1 files changed, 12 insertions, 5 deletions
diff --git a/base/chunk_generator.hh b/base/chunk_generator.hh
index 83caaca88..afd577814 100644
--- a/base/chunk_generator.hh
+++ b/base/chunk_generator.hh
@@ -82,11 +82,18 @@ class ChunkGenerator
// set up initial chunk.
curAddr = startAddr;
- // nextAddr should be *next* chunk start
- nextAddr = roundUp(startAddr, chunkSize);
- if (curAddr == nextAddr) {
- // ... even if startAddr is already chunk-aligned
- nextAddr += chunkSize;
+ if (chunkSize == 0) //Special Case, if we see 0, assume no chuncking
+ {
+ nextAddr = startAddr + totalSize;
+ }
+ else
+ {
+ // nextAddr should be *next* chunk start
+ nextAddr = roundUp(startAddr, chunkSize);
+ if (curAddr == nextAddr) {
+ // ... even if startAddr is already chunk-aligned
+ nextAddr += chunkSize;
+ }
}
// how many bytes are left between curAddr and the end of this chunk?