33a34
> #include <sys/user.h>
43a45
> #include "base/intmath.hh"
59c61
< cachedSize(params()->range.size()), cachedStart(params()->range.start)
---
> _size(params()->range.size()), _start(params()->range.start)
61c63
< if (params()->range.size() % TheISA::PageBytes != 0)
---
> if (size() % TheISA::PageBytes != 0)
67,69d68
< int map_flags = MAP_ANON | MAP_PRIVATE;
< pmemAddr = (uint8_t *)mmap(NULL, params()->range.size(),
< PROT_READ | PROT_WRITE, map_flags, -1, 0);
70a70,82
> if (params()->file == "") {
> int map_flags = MAP_ANON | MAP_PRIVATE;
> pmemAddr = (uint8_t *)mmap(NULL, size(),
> PROT_READ | PROT_WRITE, map_flags, -1, 0);
> } else {
> int map_flags = MAP_PRIVATE;
> int fd = open(params()->file.c_str(), O_RDONLY);
> _size = lseek(fd, 0, SEEK_END);
> lseek(fd, 0, SEEK_SET);
> pmemAddr = (uint8_t *)mmap(NULL, roundUp(size(), PAGE_SIZE),
> PROT_READ | PROT_WRITE, map_flags, fd, 0);
> }
>
73c85,88
< fatal("Could not mmap!\n");
---
> if (params()->file == "")
> fatal("Could not mmap!\n");
> else
> fatal("Could not find file: %s\n", params()->file);
78c93
< memset(pmemAddr, 0, p->range.size());
---
> memset(pmemAddr, 0, size());
97,98c112
< munmap((char*)pmemAddr, params()->range.size());
< //Remove memPorts?
---
> munmap((char*)pmemAddr, size());
411c425
< resp.push_back(RangeSize(start(), params()->range.size()));
---
> resp.push_back(RangeSize(start(), size()));
465a480
> SERIALIZE_SCALAR(_size);
480,481c495
< if (gzwrite(compressedMem, pmemAddr, params()->range.size()) !=
< (int)params()->range.size()) {
---
> if (gzwrite(compressedMem, pmemAddr, size()) != (int)size()) {
525c539
< munmap((char*)pmemAddr, params()->range.size());
---
> munmap((char*)pmemAddr, size());
527c541,545
< pmemAddr = (uint8_t *)mmap(NULL, params()->range.size(),
---
> UNSERIALIZE_SCALAR(_size);
> if (size() > params()->range.size())
> fatal("Memory size has changed!\n");
>
> pmemAddr = (uint8_t *)mmap(NULL, size(),
541c559
< while (curSize < params()->range.size()) {
---
> while (curSize < size()) {