Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid
[simgrid.git] / src / mc / Process.cpp
index 0a38e29..7ffd7b3 100644 (file)
@@ -143,12 +143,12 @@ static char* get_lib_name(const char* pathname, struct s_mc_memory_map_re* res)
   return libname;
 }
 
-static ssize_t pread_whole(int fd, void *buf, size_t count, std::uint64_t offset)
+static ssize_t pread_whole(int fd, void *buf, size_t count, off_t offset)
 {
   char* buffer = (char*) buf;
   ssize_t real_count = count;
   while (count) {
-    ssize_t res = pread(fd, buffer, count, (std::int64_t) offset);
+    ssize_t res = pread(fd, buffer, count, offset);
     if (res > 0) {
       count  -= res;
       buffer += res;
@@ -498,8 +498,7 @@ const void *Process::read_bytes(void* buffer, std::size_t size,
     }
 #endif
   }
-
-  if (pread_whole(this->memory_file, buffer, size, address.address()) < 0)
+  if (pread_whole(this->memory_file, buffer, size, (size_t) address.address()) < 0)
     xbt_die("Read at %p from process %lli failed", (void*)address.address(), (long long)this->pid_);
   return buffer;
 }
@@ -512,7 +511,7 @@ const void *Process::read_bytes(void* buffer, std::size_t size,
  */
 void Process::write_bytes(const void* buffer, size_t len, RemotePtr<void> address)
 {
-  if (pwrite_whole(this->memory_file, buffer, len, address.address()) < 0)
+  if (pwrite_whole(this->memory_file, buffer, len,  (size_t)address.address()) < 0)
     xbt_die("Write to process %lli failed", (long long) this->pid_);
 }