Merge zizzer.eecs.umich.edu:/z/m5/Bitkeeper/m5
[gem5.git] / sim / process.hh
index 1ab43cd62b4fb3291090dd41fc1275eed3859468..ef54ced787b99ce8fdc3d0f4acf7bdafdf9e2bf8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2001-2004 The Regents of The University of Michigan
+ * Copyright (c) 2001-2005 The Regents of The University of Michigan
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -34,7 +34,9 @@
 // when there's no OS: thus there's no reason to use it in FULL_SYSTEM
 // mode when we do have an OS.
 //
-#ifndef FULL_SYSTEM
+#include "config/full_system.hh"
+
+#if !FULL_SYSTEM
 
 #include <vector>
 
@@ -97,6 +99,10 @@ class Process : public SimObject
     Addr mmap_start;
     Addr mmap_end;
 
+    // Base of region for nxm data
+    Addr nxm_start;
+    Addr nxm_end;
+
     std::string prog_fname;    // file name
     Addr prog_entry;           // entry point (initial PC)
 
@@ -159,9 +165,10 @@ class Process : public SimObject
     bool validDataAddr(Addr addr)
     {
         return ((data_base <= addr && addr < brk_point) ||
-                ((stack_base - 16*1024*1024) <= addr && addr < stack_base) ||
+                (next_thread_stack_base <= addr && addr < stack_base) ||
                 (text_base <= addr && addr < (text_base + text_size)) ||
-                (mmap_start <= addr && addr < mmap_end));
+                (mmap_start <= addr && addr < mmap_end) ||
+                (nxm_start <= addr && addr < nxm_end));
     }
 
     virtual void syscall(ExecContext *xc) = 0;