SPARC,Remote GDB: Flesh out the acc function for SE mode.
authorGabe Black <gblack@eecs.umich.edu>
Wed, 3 Oct 2007 01:25:10 +0000 (18:25 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Wed, 3 Oct 2007 01:25:10 +0000 (18:25 -0700)
--HG--
extra : convert_revision : eada066ab64701b5c53e7351dfffbdc0e0d4f344

src/arch/sparc/remote_gdb.cc

index 85b0c03a3a09e12924658a30d6b273f506abd995..67cc5b0d1028e82dd4c8d329374ae78565a342f0 100644 (file)
 #include "config/full_system.hh"
 #include "cpu/thread_context.hh"
 #include "cpu/static_inst.hh"
+#include "mem/page_table.hh"
 #include "mem/physical.hh"
 #include "mem/port.hh"
+#include "sim/process.hh"
 #include "sim/system.hh"
 
 using namespace std;
@@ -150,11 +152,20 @@ bool
 RemoteGDB::acc(Addr va, size_t len)
 {
     //@Todo In NetBSD, this function checks if all addresses
-    //from va to va + len have valid page mape entries. Not
+    //from va to va + len have valid page map entries. Not
     //sure how this will work for other OSes or in general.
+#if FULL_SYSTEM
     if (va)
         return true;
     return false;
+#else
+    TlbEntry entry;
+    //Check to make sure the first byte is mapped into the processes address
+    //space.
+    if (context->getProcessPtr()->pTable->lookup(va, entry))
+        return true;
+    return false;
+#endif
 }
 
 ///////////////////////////////////////////////////////////