} e_surf_process_on_failure_t;
+/* FIXME: Where should the VM state be defined? */
+typedef enum {
+ /* created, but not yet started */
+ SURF_VM_STATE_CREATED,
+
+ SURF_VM_STATE_RUNNING,
+ SURF_VM_STATE_MIGRATING,
+
+ /* Suspend/resume does not involve disk I/O, so we assume there is no transition states. */
+ SURF_VM_STATE_SUSPENDED,
+
+ /* Save/restore involves disk I/O, so there should be transition states. */
+ SURF_VM_STATE_SAVING,
+ SURF_VM_STATE_SAVED,
+ SURF_VM_STATE_RESTORING,
+
+} e_surf_vm_state_t;
+
+typedef struct ws_params {
+ int ncpus;
+ long ramsize;
+ int overcommit;
+
+ /* The size of other states than memory pages, which is out-of-scope of dirty
+ * page tracking. */
+ long devsize;
+ int skip_stage1;
+ int skip_stage2;
+ double max_downtime;
+
+ double dp_rate;
+ double dp_cap; /* bytes per 1 flop execution */
+
+ double xfer_cpu_overhead;
+ double dpt_cpu_overhead;
+
+ /* set migration speed */
+ double mig_speed;
+} s_ws_params_t, *ws_params_t;
+
typedef struct tmgr_trace *tmgr_trace_t; /**< Opaque structure defining an availability trace */
/** opaque structure defining a event generator for availability based on a probability distribution */
XBT_PUBLIC(probabilist_event_generator_t) tmgr_event_generator_new_weibull(const char* id,
double scale,
double shape);
+typedef xbt_dictelm_t sg_host_t;
+static inline char* sg_host_name(sg_host_t host) {
+ return host->key;
+}
+
/*
* Platform creation functions. Instead of passing 123 arguments to the creation functions
double lat;
double bb_bw;
double bb_lat;
+ double loopback_bw;
+ double loopback_lat;
+ double limiter_link;
+ xbt_dict_t properties;
const char* router_id;
e_surf_link_sharing_policy_t sharing_policy;
e_surf_link_sharing_policy_t bb_sharing_policy;
} s_sg_platf_cluster_cbarg_t;
#define SG_PLATF_CLUSTER_INITIALIZER {NULL,NULL,NULL,NULL,NULL,NULL \
- ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
+ ,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}
typedef struct s_sg_platf_cabinet_cbarg *sg_platf_cabinet_cbarg_t;
typedef struct s_sg_platf_cabinet_cbarg {