A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
have tests passing without smpi
[simgrid.git]
/
src
/
mc
/
Process.hpp
diff --git
a/src/mc/Process.hpp
b/src/mc/Process.hpp
index
10bd3b5
..
e797a0a
100644
(file)
--- a/
src/mc/Process.hpp
+++ b/
src/mc/Process.hpp
@@
-45,11
+45,9
@@
namespace mc {
class SimixProcessInformation {
public:
/** MCed address of the process */
class SimixProcessInformation {
public:
/** MCed address of the process */
- RemotePtr<s_smx_process_t> address = nullptr;
- union {
- /** (Flat) Copy of the process data structure */
- struct s_smx_process copy;
- };
+ RemotePtr<simgrid::simix::Process> address = nullptr;
+ Remote<simgrid::simix::Process> copy;
+
/** Hostname (owned by `mc_modelchecker->hostnames`) */
const char* hostname = nullptr;
std::string name;
/** Hostname (owned by `mc_modelchecker->hostnames`) */
const char* hostname = nullptr;
std::string name;
@@
-76,13
+74,13
@@
struct IgnoredHeapRegion {
/** Representation of a process
*
/** Representation of a process
*
- * This class is mixing a lot of different respons
a
bilities and is tied
+ * This class is mixing a lot of different respons
i
bilities and is tied
* to SIMIX. It should probably be split into different classes.
*
* to SIMIX. It should probably be split into different classes.
*
- * Respons
a
bilities:
+ * Respons
i
bilities:
*
* - reading from the process memory (`AddressSpace`);
*
* - reading from the process memory (`AddressSpace`);
- * - accessing the system state of the p
or
cess (heap, …);
+ * - accessing the system state of the p
ro
cess (heap, …);
* - storing the SIMIX state of the process;
* - privatization;
* - communication with the model-checked process;
* - storing the SIMIX state of the process;
* - privatization;
* - communication with the model-checked process;
@@
-120,7
+118,11
@@
public:
read_variable(name, &res, sizeof(T));
return res;
}
read_variable(name, &res, sizeof(T));
return res;
}
- std::string read_string(RemotePtr<void> address) const;
+ std::string read_string(RemotePtr<char> address) const;
+ std::string read_string(RemotePtr<char> address, std::size_t len) const
+ {
+ return AddressSpace::read_string(address, len);
+ }
// Write memory:
void write_bytes(const void* buffer, size_t len, RemotePtr<void> address);
// Write memory:
void write_bytes(const void* buffer, size_t len, RemotePtr<void> address);
@@
-217,9
+219,9
@@
public:
/** Get a local description of a remote SIMIX process */
simgrid::mc::SimixProcessInformation* resolveProcessInfo(
/** Get a local description of a remote SIMIX process */
simgrid::mc::SimixProcessInformation* resolveProcessInfo(
- simgrid::mc::RemotePtr<s
_smx_process_t
> process)
+ simgrid::mc::RemotePtr<s
imgrid::simix::Process
> process)
{
{
- xbt_assert(mc_mode
== MC_MODE_SERVER
);
+ xbt_assert(mc_mode
l_checker != nullptr
);
if (!process)
return nullptr;
this->refresh_simix();
if (!process)
return nullptr;
this->refresh_simix();
@@
-233,12
+235,12
@@
public:
}
/** Get a local copy of the SIMIX process structure */
}
/** Get a local copy of the SIMIX process structure */
- s
mx_process_t resolveProcess(simgrid::mc::RemotePtr<s_smx_process_t
> process)
+ s
imgrid::simix::Process* resolveProcess(simgrid::mc::RemotePtr<simgrid::simix::Process
> process)
{
simgrid::mc::SimixProcessInformation* process_info =
this->resolveProcessInfo(process);
if (process_info)
{
simgrid::mc::SimixProcessInformation* process_info =
this->resolveProcessInfo(process);
if (process_info)
- return
&process_info->copy
;
+ return
process_info->copy.getBuffer()
;
else
return nullptr;
}
else
return nullptr;
}
@@
-316,7
+318,7
@@
public: // Libunwind-data
*/
unw_addr_space_t unw_addr_space;
*/
unw_addr_space_t unw_addr_space;
- /** Underlying libunwind addres-space
+ /** Underlying libunwind addres
s
-space
*
* The `find_proc_info`, `put_unwind_info`, `get_dyn_info_list_addr`
* operations of the native MC address space is currently delegated
*
* The `find_proc_info`, `put_unwind_info`, `get_dyn_info_list_addr`
* operations of the native MC address space is currently delegated