/** @brief Return the location on which the current process is executed */
XBT_PUBLIC sg_host_t MSG_host_self();
+XBT_PUBLIC double MSG_host_get_load(sg_host_t host);
/* ******************************** VMs ************************************* */
typedef sg_vm_t msg_vm_t;
XBT_PUBLIC sg_size_t MSG_storage_write(msg_storage_t storage, sg_size_t size);
/* ******************************** Actor/process *************************** */
+/** Processes are independent agents that can do stuff on their own.
+ * They are in charge of executing your code interacting with the simulated world.
+ * A process may be defined as a <em>code</em> with some <em>private data</em>.
+ * Processes must be located on <em>hosts</em> (#msg_host_t), and they exchange data by sending tasks (#msg_task_t)
+ * that are similar to envelops containing data.
+ *
+ * @hideinitializer
+ */
typedef sg_actor_t msg_process_t;
XBT_PUBLIC int MSG_process_get_PID(msg_process_t process);
/** @brief Default value for an uninitialized #msg_task_t. */
#define MSG_TASK_UNINITIALIZED NULL
-/** @brief Return code of most MSG functions
+/** @brief Return code of most MSG functions */
/* Keep these code as binary values: java bindings manipulate | of these values */
typedef enum {
MSG_OK = 0, /**< @brief Everything is right. Keep on going this way ! */
* MSG_config("host/model","ptask_L07");
*/
XBT_PUBLIC void MSG_config(const char* key, const char* value);
-/** @ingroup msg_simulation
- * @brief Initialize the MSG internal data.
+/** @brief Initialize the MSG internal data.
* @hideinitializer
*
* It also check that the link-time and compile-time versions of SimGrid do
XBT_PUBLIC void MSG_mailbox_set_async(const char* alias);
/** @brief Opaque type representing a semaphore
- * @ingroup msg_synchro
* @hideinitializer
*/
typedef struct s_smx_sem_t* msg_sem_t; // Yeah that's a rename of the smx_sem_t which doesnt require smx_sem_t to be