-There is some functionnalities that we want to virtualize in XBT. We
-want xbt_time to give the simulated clock when running on top of the
-simulator, and the host clock when running on a real system. This
-could be placed in GRAS (and was, historically), but there is some
-reason to lower it down to XBT.
-
-Here is the used naming scheme:
-
- - xbt_<module>_<func>(): functions working both in SG and RL
- - xbt_os_<module>_<func>(): RL functions usable even in simulator
-
- That way, in libsimgrid, we still can use native functions if we
- want to. It may for example be useful to get the real time when
- implementing the simulator. Think of the SIGINT handler, which
- wants to see if the user pressed the key twice in a 5 seconds
- interval. This is of little use to check the simulated time here.
-
-Here is the file layout:
-
- - xbt_rl_<module>.c: native implementation (xbt_<module>_<func>()).
- Simply call the corresponding xbt_os_<module>_<func>.
- Part only of libgras.so
-
- - xbt_sg_<module>.c: SIMIX implementation xbt_<module>_<func>()).
- Simply call the corresponding SIMIX implementation.
- Part only of libsimgrid.so
-
- - xbt_os_<module>.c: body of the functions implementing natively the
- stuff (xbt_os_<module>_<func>()).
- Part of both libgras.so and libsimgrid.so
-
-Since there is almost nothing in xbt_rl_module.c and xbt_sg_module.c,
-it'd be better to use symbol aliasing here (to declare in the object
-code that the same function have two names), but I'm still
-investigating the portability of the thing to windows.
+SimGrid3 legacy interface (ie, MSG) is following these rules:
+
+ - ???_t is a valid type (built with typedef)
+ - s_toto_t is a structure (access to fields with .)
+ - s_toto is a structure needing 'struct' keyword to be used
+ - e_toto_t is an enum
+ - u_toto_t is an union
+ - u_toto is an union needing 'union' keyword to be used
+ - toto_t is an 'object' (struct*)
+
+Please to not call toto_t something else than an 'object' (ie, something you
+have to call _new and _free on it).
+
+Example:
+ typedef struct s_toto {} s_toto_t, *toto_t;
+ typedef enum {} e_toto_t;
+
+Moreover, only toto_t (and e_toto_t) are public. The rest (mainly s_toto_t)
+is private.