Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
70cbc24a2665e67d0c581b69f93e0c01faa80a36
[simgrid.git] / src / include / surf / surfxml_parse_values.h
1 /* Copyright (c) 2011. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5   * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #ifndef SURFXML_PARSE_VALUES_H_
8 #define SURFXML_PARSE_VALUES_H_
9
10 typedef struct s_surf_parsing_peer_arg *surf_parsing_peer_arg_t;
11 typedef struct s_surf_parsing_peer_arg {
12         char* V_peer_id;
13         char* V_peer_power;
14         char* V_peer_bw_in;
15         char* V_peer_bw_out;
16         char* V_peer_lat;
17         char* V_peer_coord;
18         char* V_peer_availability_trace;
19         char* V_peer_state_trace;
20 } s_surf_parsing_peer_arg_t;
21
22 typedef struct s_surf_parsing_link_arg *surf_parsing_link_arg_t;
23 typedef struct s_surf_parsing_link_arg {
24         char* V_link_id;
25         double V_link_bandwidth;
26         tmgr_trace_t V_link_bandwidth_file;
27         double V_link_latency;
28         tmgr_trace_t V_link_latency_file;
29         e_surf_resource_state_t V_link_state;
30         tmgr_trace_t V_link_state_file;
31         int V_link_sharing_policy;
32         int V_policy_initial_link;
33 } s_surf_parsing_link_arg_t;
34
35 typedef struct s_surf_parsing_cluster_arg *surf_parsing_cluster_arg_t;
36 typedef struct s_surf_parsing_cluster_arg {
37         char* V_cluster_id;
38         char* V_cluster_prefix;
39         char* V_cluster_suffix;
40         char* V_cluster_radical;
41         double S_cluster_power;
42         int S_cluster_core;
43         double S_cluster_bw;
44         double S_cluster_lat;
45         double S_cluster_bb_bw;
46         double S_cluster_bb_lat;
47         char* S_cluster_router_id;
48         int V_cluster_sharing_policy;
49         int V_cluster_bb_sharing_policy;
50         char* V_cluster_availability_file;
51         char* V_cluster_state_file;
52 } s_surf_parsing_cluster_arg_t;
53
54 typedef struct s_surf_parsing_router_arg *surf_parsing_router_arg_t;
55 typedef struct s_surf_parsing_router_arg {
56         char* V_router_id;
57         char* V_router_coord;
58 } s_surf_parsing_router_arg_t;
59
60 typedef struct s_surf_parsing_host_arg *surf_parsing_host_arg_t;
61 typedef struct s_surf_parsing_host_arg {
62         char* V_host_id;                          //id
63         double V_host_power_peak;                     //power
64         int V_host_core;                          //core
65         double V_host_power_scale;                      //availability
66         tmgr_trace_t V_host_power_trace;                  //availability file
67         e_surf_resource_state_t V_host_state_initial;           //state
68         tmgr_trace_t V_host_state_trace;                  //state file
69         const char* V_host_coord;
70 } s_surf_parsing_host_arg_t;
71
72 typedef struct s_surf_parsing_link_up_down *surf_parsing_link_up_down_t;
73 typedef struct s_surf_parsing_link_up_down {
74         void* link_up;
75         void* link_down;
76 } s_surf_parsing_link_up_down_t;
77
78
79 typedef void (*surf_parse_host_fct_t)(surf_parsing_host_arg_t);
80 void surf_parse_host_add_cb(surf_parse_host_fct_t);
81
82 extern surf_parsing_router_arg_t struct_router;
83 extern surf_parsing_cluster_arg_t struct_cluster;
84 extern surf_parsing_peer_arg_t struct_peer;
85 extern surf_parsing_link_arg_t struct_lnk;
86
87 void surf_parse_host(surf_parsing_host_arg_t h);
88 void surf_parse_link(void);
89
90 #endif /* SURFXML_PARSE_VALUES_H_ */