1 /* Copyright (c) 2010-2012, 2014-2015. The SimGrid Team.
2 * All rights reserved. */
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. */
7 #ifndef JED_SIMGRID_PLATFORM_H_
8 #define JED_SIMGRID_PLATFORM_H_
10 #include "simgrid_config.h"
12 #include "xbt/dynar.h"
19 typedef struct jed_simgrid_container s_jed_simgrid_container_t,
20 *jed_simgrid_container_t;
23 struct jed_simgrid_container {
25 xbt_dynar_t container_children;
26 jed_simgrid_container_t parent;
27 xbt_dynar_t resource_list;
35 * selection of a subset of resources from the original set
38 struct jed_res_subset {
39 jed_simgrid_container_t parent;
40 int start_idx; // start idx in resource_list of container
41 int nres; // number of resources spanning starting at start_idx
44 typedef struct jed_res_subset s_jed_res_subset_t, *jed_res_subset_t;
46 struct jedule_struct {
47 jed_simgrid_container_t root_container;
48 xbt_dict_t jedule_meta_info;
51 typedef struct jedule_struct s_jedule_t, *jedule_t;
54 /*********************************************************/
56 void jed_create_jedule(jedule_t *jedule);
58 void jed_free_jedule(jedule_t jedule);
60 void jedule_add_meta_info(jedule_t jedule, char *key, char *value);
62 void jed_simgrid_create_container(jed_simgrid_container_t *container,
65 void jed_simgrid_add_container(jed_simgrid_container_t parent,
66 jed_simgrid_container_t child);
68 void jed_simgrid_add_resources(jed_simgrid_container_t parent,
69 xbt_dynar_t host_names);
73 * it is assumed that the host_names in the entire system are unique
74 * that means that we don't need parent references
76 * subset_list must be allocated
77 * host_names is the list of host_names associated with an event
79 void jed_simgrid_get_resource_selection_by_hosts(xbt_dynar_t subset_list,
80 xbt_dynar_t host_names);
84 hash host_id -> container
87 hash host_id -> jed_host_id
89 list <- [ jed_host_ids ]
91 list_chunks <- chunk( list ) -> [ 1, 3-5, 7-9 ]
100 #endif /* JED_SIMGRID_PLATFORM_H_ */