/usr/include/simgrid/platf_generator.h is in libsimgrid-dev 3.11.1-9.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | /* platf_generator.h - Public interface to the SimGrid platforms generator */
/* Copyright (c) 2004-2014. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
#ifndef SG_PLATF_GEN_H
#define SG_PLATF_GEN_H
#include "xbt.h"
#include "xbt/graph.h" //Only for platf_graph_get()
#include "platf.h"
typedef enum {
ROUTER,
HOST,
CLUSTER
} e_platf_node_kind;
typedef struct s_context_node_t {
unsigned long id;
double x, y;
int degree;
e_platf_node_kind kind;
int connect_checked;
union {
s_sg_platf_host_cbarg_t host_parameters;
s_sg_platf_cluster_cbarg_t cluster_parameters;
char* router_id;
};
} s_context_node_t, *context_node_t;
typedef struct s_context_edge_t {
unsigned long id;
double length;
int labeled;
s_sg_platf_link_cbarg_t link_parameters;
} s_context_edge_t, *context_edge_t;
typedef void (*platf_promoter_cb_t) (context_node_t);
typedef void (*platf_labeler_cb_t) (context_edge_t);
XBT_PUBLIC(void) platf_random_seed(unsigned long seed[6]);
XBT_PUBLIC(void) platf_graph_uniform(unsigned long node_count);
XBT_PUBLIC(void) platf_graph_heavytailed(unsigned long node_count);
XBT_PUBLIC(void) platf_graph_interconnect_star(void);
XBT_PUBLIC(void) platf_graph_interconnect_line(void);
XBT_PUBLIC(void) platf_graph_interconnect_ring(void);
XBT_PUBLIC(void) platf_graph_interconnect_clique(void);
XBT_PUBLIC(void) platf_graph_interconnect_uniform(double alpha);
XBT_PUBLIC(void) platf_graph_interconnect_exponential(double alpha);
XBT_PUBLIC(void) platf_graph_interconnect_zegura(double alpha, double beta, double r);
XBT_PUBLIC(void) platf_graph_interconnect_waxman(double alpha, double beta);
XBT_PUBLIC(void) platf_graph_interconnect_barabasi(void);
XBT_PUBLIC(int) platf_graph_is_connected(void);
XBT_PUBLIC(void) platf_graph_clear_links(void);
XBT_PUBLIC(void) platf_graph_promote_to_host(context_node_t node, sg_platf_host_cbarg_t parameters);
XBT_PUBLIC(void) platf_graph_promote_to_cluster(context_node_t node, sg_platf_cluster_cbarg_t parameters);
XBT_PUBLIC(void) platf_graph_link_label(context_edge_t edge, sg_platf_link_cbarg_t parameters);
XBT_PUBLIC(void) platf_graph_promoter(platf_promoter_cb_t promoter_callback);
XBT_PUBLIC(void) platf_graph_labeler(platf_labeler_cb_t labeler_callback);
XBT_PUBLIC(void) platf_do_promote(void);
XBT_PUBLIC(void) platf_do_label(void);
XBT_PUBLIC(void) platf_generate(void);
// WARNING : Only for debbugging ; should be removed when platform
// generation works correctly
XBT_PUBLIC(xbt_graph_t) platf_graph_get(void);
#endif /* SG_PLATF_GEN_H */
|