+ switch(req->call){
+ case SIMCALL_COMM_ISEND:
+ type = xbt_strdup("iSend");
+ p = pointer_to_string(req->comm_isend.src_buff);
+ bs = buff_size_to_string(req->comm_isend.src_buff_size);
+ args = bprintf("src=%s, buff=%s, size=%s", req->issuer->name, p, bs);
+ break;
+ case SIMCALL_COMM_IRECV:
+ size = req->comm_irecv.dst_buff_size ? *req->comm_irecv.dst_buff_size : 0;
+ type = xbt_strdup("iRecv");
+ p = pointer_to_string(req->comm_irecv.dst_buff);
+ bs = buff_size_to_string(size);
+ args = bprintf("dst=%s, buff=%s, size=%s", req->issuer->name, p, bs);
+ break;
+ case SIMCALL_COMM_WAIT:
+ act = req->comm_wait.comm;
+ if(value == -1){
+ type = xbt_strdup("WaitTimeout");
+ p = pointer_to_string(act);
+ args = bprintf("comm=%p", p);
+ }else{
+ type = xbt_strdup("Wait");
+ p = pointer_to_string(act);
+ args = bprintf("comm=%s [(%lu)%s -> (%lu)%s]", p,
+ act->comm.src_proc ? act->comm.src_proc->pid : 0,
+ act->comm.src_proc ? act->comm.src_proc->name : "",
+ act->comm.dst_proc ? act->comm.dst_proc->pid : 0,
+ act->comm.dst_proc ? act->comm.dst_proc->name : "");
+ }
+ break;
+ case SIMCALL_COMM_TEST:
+ act = req->comm_test.comm;
+ if(act->comm.src_proc == NULL || act->comm.dst_proc == NULL){
+ type = xbt_strdup("Test FALSE");
+ p = pointer_to_string(act);
+ args = bprintf("comm=%s", p);
+ }else{
+ type = xbt_strdup("Test TRUE");
+ p = pointer_to_string(act);
+ args = bprintf("comm=%s [(%lu)%s -> (%lu)%s]", p,
+ act->comm.src_proc->pid, act->comm.src_proc->name,
+ act->comm.dst_proc->pid, act->comm.dst_proc->name);
+ }
+ break;
+
+ case SIMCALL_COMM_WAITANY:
+ type = xbt_strdup("WaitAny");
+ p = pointer_to_string(xbt_dynar_get_as(req->comm_waitany.comms, value, smx_action_t));
+ args = bprintf("comm=%s (%d of %lu)", p,
+ value+1, xbt_dynar_length(req->comm_waitany.comms));
+ break;
+
+ case SIMCALL_COMM_TESTANY:
+ if(value == -1){
+ type = xbt_strdup("TestAny FALSE");
+ args = xbt_strdup("-");
+ }else{
+ type = xbt_strdup("TestAny");
+ args = bprintf("(%d of %lu)", value+1, xbt_dynar_length(req->comm_testany.comms));
+ }
+ break;
+
+ default:
+ THROW_UNIMPLEMENTED;