From 7122b83d8f92d77bccae432b4e90ba12f1babad5 Mon Sep 17 00:00:00 2001
From: Nilay Vaish <nilay@cs.wisc.edu>
Date: Mon, 27 Aug 2012 01:00:54 -0500
Subject: Ruby Memory Vector: Allow more than 4GB of memory The memory size
 variable was a 32-bit int. This meant that the size of the memory was limited
 to 4GB. This patch changes the type of the variable to 64-bit to support
 larger memory sizes. Thanks to Raghuraman Balasubramanian for bringing this
 to notice.

---
 src/mem/ruby/system/MemoryVector.hh | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

(limited to 'src')

diff --git a/src/mem/ruby/system/MemoryVector.hh b/src/mem/ruby/system/MemoryVector.hh
index 315e00942..f8e407942 100644
--- a/src/mem/ruby/system/MemoryVector.hh
+++ b/src/mem/ruby/system/MemoryVector.hh
@@ -42,11 +42,11 @@ class MemoryVector
 {
   public:
     MemoryVector();
-    MemoryVector(uint32 size);
+    MemoryVector(uint64 size);
     ~MemoryVector();
     friend class DirectoryMemory;
 
-    void resize(uint32 size);  // destructive
+    void resize(uint64 size);  // destructive
 
     void write(const Address & paddr, uint8* data, int len);
     uint8* read(const Address & paddr, uint8* data, int len);
@@ -56,7 +56,7 @@ class MemoryVector
   private:
     uint8* getBlockPtr(const PhysAddress & addr);
 
-    uint32 m_size;
+    uint64 m_size;
     uint8** m_pages;
     uint32 m_num_pages;
     const uint32 m_page_offset_mask;
@@ -73,7 +73,7 @@ MemoryVector::MemoryVector()
 }
 
 inline
-MemoryVector::MemoryVector(uint32 size)
+MemoryVector::MemoryVector(uint64 size)
     : m_page_offset_mask(4095)
 {
     resize(size);
@@ -91,7 +91,7 @@ MemoryVector::~MemoryVector()
 }
 
 inline void
-MemoryVector::resize(uint32 size)
+MemoryVector::resize(uint64 size)
 {
     if (m_pages != NULL){
         for (int i = 0; i < m_num_pages; i++) {
-- 
cgit v1.2.3