Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'master' of github.com:mquinson/simgrid
[simgrid.git] / src / mc / mc_unw.h
index 8e87c84..3470bd8 100644 (file)
@@ -1,12 +1,11 @@
 /* Copyright (c) 2015. The SimGrid Team.
-
-/ * All rights reserved.                                                     */
+ * 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. */
 
-#ifndef MC_UNW_H
-#define MC_UNW_H
+#ifndef SIMGRID_MC_UNW_H
+#define SIMGRID_MC_UNW_H
 
 /** \file
  *  Libunwind implementation for the model-checker
@@ -17,7 +16,7 @@
  *
  *  This component implements the libunwind API for he model-checker:
  *
- *    * reading memory from a mc_address_space_t;
+ *    * reading memory from a simgrid::mc::AddressSpace*;
  *
  *    * reading stack registers from a saved snapshot (context).
  *
  *  much here.
  */
 
-#include "mc_process.h"
+#include <xbt/base.h>
+
+#include <libunwind.h>
+
+#include "src/mc/Process.hpp"
 
 SG_BEGIN_DECL()
 
@@ -44,38 +47,35 @@ SG_BEGIN_DECL()
  *
  *  It works with `void*` contexts allocated with `_UPT_create(pid)`.
  */
-extern unw_accessors_t mc_unw_vmread_accessors;
+extern XBT_PRIVATE unw_accessors_t mc_unw_vmread_accessors;
 
 /** Virtual table for our `libunwind` implementation
  *
- *  Stack unwinding on a `mc_process_t` (for memory, unwinding information)
+ *  Stack unwinding on a `simgrid::mc::Process*` (for memory, unwinding information)
  *  and `ucontext_t` (for processor registers).
  *
  *  It works with the `s_mc_unw_context_t` context.
  */
-extern XBT_INTERNAL unw_accessors_t mc_unw_accessors;
+extern XBT_PRIVATE unw_accessors_t mc_unw_accessors;
 
 // ***** Libunwind context
 
 /** A `libunwind` context
  */
-typedef struct s_mc_unw_context {
-  mc_address_space_t address_space;
-  mc_process_t       process;
+typedef struct XBT_PRIVATE s_mc_unw_context {
+  simgrid::mc::AddressSpace* address_space;
+  simgrid::mc::Process*       process;
   unw_context_t      context;
 } s_mc_unw_context_t, *mc_unw_context_t;
 
 /** Initialises an already allocated context */
-XBT_INTERNAL int mc_unw_init_context(
-  mc_unw_context_t context, mc_process_t process, unw_context_t* c);
-
-/** Destroys (but not not `free`) a context */
-XBT_INTERNAL int mc_unw_destroy_context(mc_unw_context_t context);
+XBT_PRIVATE int mc_unw_init_context(
+  mc_unw_context_t context, simgrid::mc::Process* process, unw_context_t* c);
 
 // ***** Libunwind cursor
 
 /** Initialises a `libunwind` cursor */
-XBT_INTERNAL int mc_unw_init_cursor(unw_cursor_t *cursor, mc_unw_context_t context);
+XBT_PRIVATE int mc_unw_init_cursor(unw_cursor_t *cursor, mc_unw_context_t context);
 
 SG_END_DECL()