X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/c5ad8ca1a68bbaa9152471c8d0eeb99d762f0d86..184f7cbedd7496fb81e192e78f7beae87f942ee5:/src/simix/smx_smurf_private.h diff --git a/src/simix/smx_smurf_private.h b/src/simix/smx_smurf_private.h index b8ab301c2d..13233a778b 100644 --- a/src/simix/smx_smurf_private.h +++ b/src/simix/smx_smurf_private.h @@ -84,7 +84,12 @@ SIMCALL_ENUM_ELEMENT(SIMCALL_SEM_WOULD_BLOCK),\ SIMCALL_ENUM_ELEMENT(SIMCALL_SEM_ACQUIRE),\ SIMCALL_ENUM_ELEMENT(SIMCALL_SEM_ACQUIRE_TIMEOUT),\ SIMCALL_ENUM_ELEMENT(SIMCALL_SEM_GET_CAPACITY),\ -SIMCALL_ENUM_ELEMENT(SIMCALL_FILE_READ) +SIMCALL_ENUM_ELEMENT(SIMCALL_FILE_READ),\ +SIMCALL_ENUM_ELEMENT(SIMCALL_FILE_WRITE),\ +SIMCALL_ENUM_ELEMENT(SIMCALL_FILE_OPEN),\ +SIMCALL_ENUM_ELEMENT(SIMCALL_FILE_CLOSE),\ +SIMCALL_ENUM_ELEMENT(SIMCALL_FILE_STAT) + /* SIMCALL_COMM_IS_LATENCY_BOUNDED and SIMCALL_SET_CATEGORY make things complicated * because they are not always present */ @@ -218,6 +223,7 @@ typedef struct s_smx_simcall { xbt_main_func_t code; void *data; const char *hostname; + double kill_time; int argc; char **argv; xbt_dict_t properties; @@ -314,7 +320,7 @@ typedef struct s_smx_simcall { double rate; void *src_buff; size_t src_buff_size; - int (*match_fun)(void *, void *); + int (*match_fun)(void *, void *, smx_action_t); void *data; double timeout; } comm_send; @@ -325,7 +331,7 @@ typedef struct s_smx_simcall { double rate; void *src_buff; size_t src_buff_size; - int (*match_fun)(void *, void *); + int (*match_fun)(void *, void *, smx_action_t); void (*clean_fun)(void *); void *data; int detached; @@ -336,7 +342,7 @@ typedef struct s_smx_simcall { smx_rdv_t rdv; void *dst_buff; size_t *dst_buff_size; - int (*match_fun)(void *, void *); + int (*match_fun)(void *, void *, smx_action_t); void *data; double timeout; } comm_recv; @@ -345,8 +351,8 @@ typedef struct s_smx_simcall { smx_rdv_t rdv; void *dst_buff; size_t *dst_buff_size; - int (*match_fun)(void *, void *); - void *data; + int (*match_fun)(void *, void *, smx_action_t); + void *data; smx_action_t result; } comm_irecv; @@ -503,8 +509,43 @@ typedef struct s_smx_simcall { } sem_get_capacity; struct { - char* name;; + const char* storage; + void *ptr; + size_t size; + size_t nmemb; + smx_file_t stream; + size_t result; } file_read; + + struct { + const char* storage; + const void *ptr; + size_t size; + size_t nmemb; + smx_file_t stream; + size_t result; + } file_write; + + struct { + const char* storage; + const char* path; + const char* mode; + smx_file_t result; + } file_open; + + struct { + const char* storage; + smx_file_t fp; + int result; + } file_close; + + struct { + const char* storage; + smx_file_t fd; + s_file_stat_t buf; + int result; + } file_stat; + }; } s_smx_simcall_t, *smx_simcall_t; @@ -514,7 +555,7 @@ void SIMIX_simcall_push(smx_process_t self); void SIMIX_simcall_answer(smx_simcall_t); void SIMIX_simcall_pre(smx_simcall_t, int); void SIMIX_simcall_post(smx_action_t); -XBT_INLINE smx_simcall_t SIMIX_simcall_mine(void); +smx_simcall_t SIMIX_simcall_mine(void); const char *SIMIX_simcall_name(e_smx_simcall_t kind); #endif