Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' into mc
[simgrid.git] / src / mc / mc_unw_vmread.cpp
similarity index 87%
rename from src/mc/mc_unw_vmread.c
rename to src/mc/mc_unw_vmread.cpp
index 2d7cb1e..a4e5677 100644 (file)
@@ -1,4 +1,8 @@
-#define _GNU_SOURCE
+/* Copyright (c) 2015. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
 
 #include <sys/types.h>
 #include <sys/uio.h>
@@ -8,6 +12,8 @@
 
 #include "mc_unw.h"
 
+extern "C" {
+
 /** \file
  *  Libunwind namespace implementation using process_vm_readv.
  *.
@@ -30,7 +36,7 @@ struct _UPT_info {
 static inline
 pid_t _UPT_getpid(void* arg)
 {
-  struct _UPT_info* info = arg;
+  struct _UPT_info* info = (_UPT_info*) arg;
   return info->pid;
 }
 
@@ -53,7 +59,7 @@ static int access_mem(const unw_addr_space_t as,
   struct iovec remote = { (void*) addr, size };
   ssize_t s = process_vm_readv(pid, &local, 1, &remote, 1, 0);
   if (s >= 0) {
-    if (s != size)
+    if ((size_t) s != size)
       return - UNW_EINVAL;
     else
       return 0;
@@ -105,3 +111,5 @@ unw_accessors_t mc_unw_vmread_accessors =
     .resume                     = &_UPT_resume,
     .get_proc_name              = &_UPT_get_proc_name
   };
+
+}