*/
typedef struct surf_model_private *surf_model_private_t;
- /** \brief Timer model extension public
- * \ingroup SURF_model
- *
- * Additionnal functions specific to the timer model
- */
-typedef struct surf_timer_model_extension_public {
- void (*set) (double date, void *function, void *arg);
- int (*get) (void **function, void **arg);
-} s_surf_model_extension_timer_t;
-
/* Cpu model */
/** \brief CPU model extension public
void (*create_resource) (char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
+ int core,
e_surf_resource_state_t state_initial,
tmgr_trace_t state_trace,
xbt_dict_t cpu_properties);
int (*is_suspended) (surf_action_t action); /**< Return whether an action is suspended */
void (*set_max_duration) (surf_action_t action, double duration); /**< Set the max duration of an action*/
void (*set_priority) (surf_action_t action, double priority); /**< Set the priority of an action */
+#ifdef HAVE_TRACING
+ void (*set_category) (surf_action_t action, const char *category); /**< Set the category of an action */
+#endif
double (*get_remains) (surf_action_t action); /**< Get the remains of an action */
#ifdef HAVE_LATENCY_BOUND_TRACKING
int (*get_latency_limited) (surf_action_t action); /**< Return 1 if action is limited by latency, 0 otherwise */
union extension {
- s_surf_model_extension_timer_t timer;
s_surf_model_extension_cpu_t cpu;
s_surf_model_extension_network_t network;
s_surf_model_extension_workstation_t workstation;
/**************************************/
-/** \brief The timer model
- * \ingroup SURF_models
- */
-XBT_PUBLIC_DATA(surf_model_t) surf_timer_model;
-
-/** \brief Initializes the timer model
- * \ingroup SURF_models
- */
-XBT_PUBLIC(void) surf_timer_model_init(const char *filename);
-
/** \brief The CPU model
* \ingroup SURF_models
*/
*/
XBT_PUBLIC(void) surf_network_model_init_Constant(const char *filename);
-XBT_PUBLIC(void) surf_network_model_init_Vivaldi(const char *filename);
-
/** \brief Initializes the platform with the network model CM02
* \ingroup SURF_models
* \param filename XML platform file name
*
* This function has to be called to initialize the common
* structures. Then you will have to create the environment by
- * calling surf_timer_model_init() and
+ * calling
* e.g. surf_workstation_model_init_CLM03() or
* surf_workstation_model_init_KCCFLN05().
*
- * \see surf_timer_model_init(), surf_workstation_model_init_CLM03(),
+ * \see surf_workstation_model_init_CLM03(),
* surf_workstation_model_init_KCCFLN05(), surf_workstation_model_init_compound(), surf_exit()
*/
XBT_PUBLIC(void) surf_init(int *argc, char **argv); /* initialize common structures */
/** \brief Performs a part of the simulation
* \ingroup SURF_simulation
+ * \param max_date Maximum date to update the simulation to, or -1
* \return the elapsed time, or -1.0 if no event could be executed
*
* This function execute all possible events, update the action states
* are not executed immediately but only when you call surf_solve.
* Note that the returned elapsed time can be zero.
*/
-XBT_PUBLIC(double) surf_solve(void);
+XBT_PUBLIC(double) surf_solve(double max_date);
/** \brief Return the current time
* \ingroup SURF_simulation
*
* Return the current time in millisecond.
*/
-XBT_PUBLIC(double) surf_get_clock(void);
+XBT_INLINE XBT_PUBLIC(double) surf_get_clock(void);
/** \brief Exit SURF
* \ingroup SURF_simulation
XBT_PUBLIC(void) surf_host_create_resource(char *name, double power_peak,
double power_scale,
tmgr_trace_t power_trace,
+ int core,
e_surf_resource_state_t
state_initial,
tmgr_trace_t state_trace,