namespace simgrid {
namespace simix {
+
+ /** @brief Process datatype
+ @ingroup simix_process_management
+
+ A process may be defined as a <em>code</em>, with some <em>private
+ data</em>, executing in a <em>location</em>.
+ \see m_process_management
+ @{ */
+ class Process;
class Context;
class ContextFactory;
+
}
}
typedef simgrid::simix::Context *smx_context_t;
+typedef simgrid::simix::Process *smx_process_t;
#else
typedef struct s_smx_context *smx_context_t;
+typedef struct s_smx_process *smx_process_t;
#endif
typedef struct s_smx_storage_priv *smx_storage_priv_t;
/* ****************************** Process *********************************** */
-/** @brief Process datatype
- @ingroup simix_process_management
- A process may be defined as a <em>code</em>, with some <em>private
- data</em>, executing in a <em>location</em>.
- \see m_process_management
- @{ */
-typedef struct s_smx_process *smx_process_t;
typedef enum {
SMX_EXIT_SUCCESS = 0,
SMX_EXIT_FAILURE = 1
*/
typedef struct s_smx_mailbox *smx_mailbox_t;
-XBT_PUBLIC(void*) SIMIX_comm_get_src_data(smx_synchro_t synchro);
-XBT_PUBLIC(void*) SIMIX_comm_get_dst_data(smx_synchro_t synchro);
-
/* Process creation/destruction callbacks */
typedef void (*void_pfn_smxprocess_t) (smx_process_t);
/* for auto-restart function */
double *bytes_amount,
double amount,
double rate);
-XBT_PUBLIC(void) simcall_execution_destroy(smx_synchro_t execution);
XBT_PUBLIC(void) simcall_execution_cancel(smx_synchro_t execution);
-XBT_PUBLIC(double) simcall_execution_get_remains(smx_synchro_t execution);
-XBT_PUBLIC(e_smx_state_t) simcall_execution_get_state(smx_synchro_t execution);
XBT_PUBLIC(void) simcall_execution_set_priority(smx_synchro_t execution, double priority);
XBT_PUBLIC(void) simcall_execution_set_bound(smx_synchro_t execution, double bound);
XBT_PUBLIC(void) simcall_execution_set_affinity(smx_synchro_t execution, sg_host_t host, unsigned long mask);
XBT_PUBLIC(smx_mailbox_t) simcall_mbox_create(const char *name);
XBT_PUBLIC(smx_mailbox_t) simcall_mbox_get_by_name(const char *name);
-XBT_PUBLIC(smx_synchro_t) simcall_mbox_get_head(smx_mailbox_t mbox);
-XBT_PUBLIC(smx_process_t) simcall_mbox_get_receiver(smx_mailbox_t mbox);
+XBT_PUBLIC(smx_synchro_t) simcall_mbox_front(smx_mailbox_t mbox);
XBT_PUBLIC(void) simcall_mbox_set_receiver(smx_mailbox_t mbox , smx_process_t process);
/***** Communication simcalls *****/
XBT_PUBLIC(int) simcall_comm_test(smx_synchro_t comm);
XBT_PUBLIC(int) simcall_comm_testany(xbt_dynar_t comms);
-/* Getters and setters */
-XBT_PUBLIC(double) simcall_comm_get_remains(smx_synchro_t comm);
-XBT_PUBLIC(void *) simcall_comm_get_src_data(smx_synchro_t comm);
-XBT_PUBLIC(void *) simcall_comm_get_dst_data(smx_synchro_t comm);
-XBT_PUBLIC(smx_process_t) simcall_comm_get_src_proc(smx_synchro_t comm);
-XBT_PUBLIC(smx_process_t) simcall_comm_get_dst_proc(smx_synchro_t comm);
-
/************************** Tracing handling **********************************/
XBT_PUBLIC(void) simcall_set_category(smx_synchro_t synchro, const char *category);