cpu: Fix retry bug in MinorCPU LSQ
[gem5.git] / src / sim / process_impl.hh
index a3519fe39ac2aff017b8edb5596ff4329f71caf0..b1905834b342af76d6b0a8e25cbdbe728698c658 100644 (file)
 #ifndef __SIM_PROCESS_IMPL_HH__
 #define __SIM_PROCESS_IMPL_HH__
 
-//
-// The purpose of this code is to fake the loader & syscall mechanism
-// when there's no OS: thus there's no reason to use it in FULL_SYSTEM
-// mode when we do have an OS.
-//
-#include "config/full_system.hh"
-
-#if !FULL_SYSTEM
-
 #include <string>
 #include <vector>
 
-#include "mem/translating_port.hh"
-
+#include "mem/se_translating_port_proxy.hh"
+#include "sim/byteswap.hh"
 
 //This needs to be templated for cases where 32 bit pointers are needed.
 template<class AddrType>
 void
 copyStringArray(std::vector<std::string> &strings,
         AddrType array_ptr, AddrType data_ptr,
-        TranslatingPort* memPort)
+        SETranslatingPortProxy& memProxy)
 {
     AddrType data_ptr_swap;
-    for (int i = 0; i < strings.size(); ++i) {
-        data_ptr_swap = htog(data_ptr);
-        memPort->writeBlob(array_ptr, (uint8_t*)&data_ptr_swap,
+    for (std::vector<std::string>::size_type i = 0; i < strings.size(); ++i) {
+        data_ptr_swap = TheISA::htog(data_ptr);
+        memProxy.writeBlob(array_ptr, (uint8_t*)&data_ptr_swap,
                 sizeof(AddrType));
-        memPort->writeString(data_ptr, strings[i].c_str());
+        memProxy.writeString(data_ptr, strings[i].c_str());
         array_ptr += sizeof(AddrType);
         data_ptr += strings[i].size() + 1;
     }
     // add NULL terminator
     data_ptr = 0;
 
-    memPort->writeBlob(array_ptr, (uint8_t*)&data_ptr, sizeof(AddrType));
+    memProxy.writeBlob(array_ptr, (uint8_t*)&data_ptr, sizeof(AddrType));
 }
 
-
-#endif // !FULL_SYSTEM
-
 #endif