X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/5d0e92347e2ff135459af73e2dc199a3d33f684f..b9d8ff0f5f0819d9103795c70ed49534d695f8ba:/src/simix/smurf_private.h diff --git a/src/simix/smurf_private.h b/src/simix/smurf_private.h index 59fcf28c02..b8431a410b 100644 --- a/src/simix/smurf_private.h +++ b/src/simix/smurf_private.h @@ -32,6 +32,8 @@ SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_SET_PRIORITY),\ SIMIX_REQ_ENUM_ELEMENT(REQ_HOST_EXECUTION_WAIT),\ SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_CREATE),\ SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_KILL),\ +SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_KILLALL),\ +SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_CLEANUP),\ SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_CHANGE_HOST),\ SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_SUSPEND),\ SIMIX_REQ_ENUM_ELEMENT(REQ_PROCESS_RESUME),\ @@ -48,7 +50,9 @@ SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_DESTROY),\ SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_GEY_BY_NAME),\ SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_COMM_COUNT_BY_HOST),\ SIMIX_REQ_ENUM_ELEMENT(REQ_RDV_GET_HEAD),\ +SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_SEND),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_ISEND),\ +SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_RECV),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_IRECV),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_DESTROY),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_CANCEL),\ @@ -60,10 +64,6 @@ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_REMAINS),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_STATE),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_SRC_DATA),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_DST_DATA),\ -SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_SRC_BUFF),\ -SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_DST_BUFF),\ -SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_SRC_BUFF_SIZE),\ -SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_DST_BUFF_SIZE),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_SRC_PROC),\ SIMIX_REQ_ENUM_ELEMENT(REQ_COMM_GET_DST_PROC),\ SIMIX_REQ_ENUM_ELEMENT(REQ_MUTEX_INIT),\ @@ -83,7 +83,8 @@ SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_RELEASE),\ SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_WOULD_BLOCK),\ SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_ACQUIRE),\ SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_ACQUIRE_TIMEOUT),\ -SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_GET_CAPACITY) +SIMIX_REQ_ENUM_ELEMENT(REQ_SEM_GET_CAPACITY),\ +SIMIX_REQ_ENUM_ELEMENT(REQ_FILE_READ) /* REQ_COMM_IS_LATENCY_BOUNDED and REQ_SET_CATEGORY make things complicated * because they are not always present */ @@ -119,7 +120,6 @@ SIMIX_REQ_LIST * \brief Represents a SIMIX request. */ typedef struct s_smx_req { - s_xbt_swag_hookup_t state_hookup; e_smx_req_t call; smx_process_t issuer; @@ -209,9 +209,11 @@ typedef struct s_smx_req { struct { smx_action_t execution; + e_smx_state_t result; } host_execution_wait; struct { + smx_process_t *process; const char *name; xbt_main_func_t code; void *data; @@ -219,7 +221,6 @@ typedef struct s_smx_req { int argc; char **argv; xbt_dict_t properties; - smx_process_t result; } process_create; struct { @@ -228,8 +229,11 @@ typedef struct s_smx_req { struct { smx_process_t process; - const char *source; - const char *dest; + } process_cleanup; + + struct { + smx_process_t process; + smx_host_t dest; } process_change_host; struct { @@ -312,6 +316,19 @@ typedef struct s_smx_req { size_t src_buff_size; int (*match_fun)(void *, void *); void *data; + double timeout; + } comm_send; + + struct { + smx_rdv_t rdv; + double task_size; + double rate; + void *src_buff; + size_t src_buff_size; + int (*match_fun)(void *, void *); + void (*clean_fun)(void *); + void *data; + int detached; smx_action_t result; } comm_isend; @@ -320,7 +337,16 @@ typedef struct s_smx_req { void *dst_buff; size_t *dst_buff_size; int (*match_fun)(void *, void *); - void *data; + void *data; + double timeout; + } comm_recv; + + struct { + smx_rdv_t rdv; + void *dst_buff; + size_t *dst_buff_size; + int (*match_fun)(void *, void *); + void *data; smx_action_t result; } comm_irecv; @@ -372,26 +398,6 @@ typedef struct s_smx_req { void *result; } comm_get_dst_data; - struct { - smx_action_t comm; - void *result; - } comm_get_src_buff; - - struct { - smx_action_t comm; - void *result; - } comm_get_dst_buff; - - struct { - smx_action_t comm; - size_t result; - } comm_get_src_buff_size; - - struct { - smx_action_t comm; - size_t result; - } comm_get_dst_buff_size; - struct { smx_action_t comm; smx_process_t result; @@ -495,15 +501,16 @@ typedef struct s_smx_req { smx_sem_t sem; int result; } sem_get_capacity; + + struct { + char* name;; + } file_read; }; } s_smx_req_t, *smx_req_t; /******************************** General *************************************/ -void SIMIX_request_init(void); -void SIMIX_request_destroy(void); -void SIMIX_request_push(void); -smx_req_t SIMIX_request_pop(void); +void SIMIX_request_push(smx_process_t self); void SIMIX_request_answer(smx_req_t); void SIMIX_request_pre(smx_req_t, int); void SIMIX_request_post(smx_action_t);