-/** Defines whether a given resource is working or not */
-typedef enum {
- SURF_RESOURCE_ON = 1, /**< Up & ready */
- SURF_RESOURCE_OFF = 0 /**< Down & broken */
-} e_surf_resource_state_t;
-
-typedef enum {
- SURF_LINK_FULLDUPLEX = 2,
- SURF_LINK_SHARED = 1,
- SURF_LINK_FATPIPE = 0
-} e_surf_link_sharing_policy_t;
-
-/*
- * Platform creation functions. Instead of passing 123 arguments to the creation functions
- * (one for each possible XML attribute), we pass structures containing them all. It removes the
- * chances of switching arguments by error, and reduce the burden when we add a new attribute:
- * old models can just continue to ignore it without having to update their headers.
- *
- * It shouldn't be too costly at runtime, provided that structures living on the stack are
- * used, instead of malloced structures.
- */
-
-typedef struct {
- const char* id;
- double power_peak;
- int core_amount;
- double power_scale;
- tmgr_trace_t power_trace;
- e_surf_resource_state_t initial_state;
- tmgr_trace_t state_trace;
- const char* coord;
- xbt_dict_t properties;
-} s_sg_platf_host_cbarg_t, *sg_platf_host_cbarg_t;
-
-typedef struct {
- const char* id;
- const char* coord;
-} s_sg_platf_router_cbarg_t, *sg_platf_router_cbarg_t;
-
-typedef struct {
- const char* id;
- double bandwidth;
- tmgr_trace_t bandwidth_trace;
- double latency;
- tmgr_trace_t latency_trace;
- e_surf_resource_state_t state;
- tmgr_trace_t state_trace;
- e_surf_link_sharing_policy_t policy;
- xbt_dict_t properties;
-} s_sg_platf_link_cbarg_t, *sg_platf_link_cbarg_t;
-
-typedef struct s_sg_platf_peer_cbarg *sg_platf_peer_cbarg_t;
-typedef struct s_sg_platf_peer_cbarg {
- const char* id;
- double power;
- double bw_in;
- double bw_out;
- double lat;
- const char* coord;
- tmgr_trace_t availability_trace;
- tmgr_trace_t state_trace;
-} s_sg_platf_peer_cbarg_t;
-
-typedef struct s_sg_platf_linkctn_cbarg *sg_platf_linkctn_cbarg_t;
-typedef struct s_sg_platf_linkctn_cbarg {
- const char *id;
- const char *direction;
-} s_sg_platf_linkctn_cbarg_t;
-
-typedef struct s_sg_platf_cluster_cbarg *sg_platf_cluster_cbarg_t;
-typedef struct s_sg_platf_cluster_cbarg {
- const char* id;
- const char* prefix;
- const char* suffix;
- const char* radical;
- double power;
- int core_amount;
- double bw;
- double lat;
- double bb_bw;
- double bb_lat;
- const char* router_id;
- e_surf_link_sharing_policy_t sharing_policy;
- e_surf_link_sharing_policy_t bb_sharing_policy;
- const char* availability_trace; //don't convert to tmgr_trace_t since there is a trace per host and some rewriting is needed
- const char* state_trace;
-} s_sg_platf_cluster_cbarg_t;
-
-typedef struct {
- const char* id;
- const char* type_id;
- const char* content;
-} s_sg_platf_storage_cbarg_t, *sg_platf_storage_cbarg_t;
-
-typedef struct {
- const char* id;
- const char* model;
- const char* content;
- xbt_dict_t properties;
- unsigned long size; /* size in Gbytes */
-} s_sg_platf_storage_type_cbarg_t, *sg_platf_storage_type_cbarg_t;
-
-typedef struct {
- const char* type_id;
- const char* name;
-} s_sg_platf_mstorage_cbarg_t, *sg_platf_mstorage_cbarg_t;
-
-typedef struct {
- const char* id;
- const char* name;
-} s_sg_platf_mount_cbarg_t, *sg_platf_mount_cbarg_t;
-