X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d944fb42733105c9de064b3a357c4009b8280d7e..b66a56b70224f8fa165a162602120b48f67ff637:/src/msg/msg_private.h diff --git a/src/msg/msg_private.h b/src/msg/msg_private.h index 611a026ebf..480d01ec22 100644 --- a/src/msg/msg_private.h +++ b/src/msg/msg_private.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2004, 2005, 2006, 2007, 2008, 2009, 2010. The SimGrid Team. +/* Copyright (c) 2004-2014. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -22,6 +22,22 @@ SG_BEGIN_DECL() /********************************* Task **************************************/ + +#define MSG_BT(ptr, m) \ + do {xbt_ex_t *_xbt_ex_t = xbt_new0(xbt_ex_t, 1); \ + /* build the exception */ \ + _xbt_ex_t->msg = (bprintf(m)); \ + _xbt_ex_t->category = (xbt_errcat_t)(0); \ + _xbt_ex_t->value = (0); \ + _xbt_ex_t->procname = (char*)xbt_procname(); \ + _xbt_ex_t->pid = xbt_getpid(); \ + _xbt_ex_t->file = (char*)__FILE__; \ + _xbt_ex_t->line = __LINE__; \ + _xbt_ex_t->func = (char*)_XBT_FUNCTION; \ + _xbt_ex_t->bt_strings = NULL; \ + xbt_backtrace_current(_xbt_ex_t); \ + ptr = _xbt_ex_t; } while(0) + typedef struct simdata_task { smx_action_t compute; /* SIMIX modeling of computation */ smx_action_t comm; /* SIMIX modeling of communication */ @@ -33,8 +49,11 @@ typedef struct simdata_task { double priority; double bound; /* Capping for CPU resource */ double rate; /* Capping for network resource */ - unsigned long affinity_mask; /* CPU affinity */ - int isused; /* Indicates whether the task is used in SIMIX currently */ + + /* CPU affinity database of this task */ + xbt_dict_t affinity_mask_db; /* smx_host_t host => unsigned long mask */ + + void *isused; /* Indicates whether the task is used in SIMIX currently */ int host_nb; /* ==0 if sequential task; parallel task if not */ /******* Parallel Tasks Only !!!! *******/ smx_host_t *host_list; @@ -111,6 +130,7 @@ typedef struct MSG_Global { int max_channel; #endif int session; + int multiple_backtraces; unsigned long int sent_msg; /* Total amount of messages sent during the simulation */ void (*task_copy_callback) (msg_task_t task, msg_process_t src, msg_process_t dst); void_f_pvoid_t process_data_cleanup; @@ -135,13 +155,18 @@ XBT_PUBLIC_DATA(MSG_Global_t) msg_global; #endif msg_host_t __MSG_host_create(smx_host_t workstation); +msg_storage_t __MSG_storage_create(smx_storage_t storage); void __MSG_host_destroy(msg_host_t host); +void __MSG_storage_destroy(msg_storage_priv_t host); +void __MSG_file_destroy(msg_file_priv_t host); void MSG_process_cleanup_from_SIMIX(smx_process_t smx_proc); void MSG_process_create_from_SIMIX(smx_process_t *process, const char *name, xbt_main_func_t code, void *data, - const char *hostname, double kill_time, int argc, - char **argv, xbt_dict_t properties, int auto_restart); + const char *hostname, double kill_time, + int argc, char **argv, + xbt_dict_t properties, int auto_restart, + smx_process_t parent_process); void MSG_comm_copy_data_from_SIMIX(smx_action_t comm, void* buff, size_t buff_size); void _MSG_action_init(void);