Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Remove side effects from xbt_asserts calls
[simgrid.git] / src / bindings / lua / simgrid_lua.h
1 /* This program is free software; you can redistribute it and/or modify it
2  * under the terms of the license (GNU LGPL) which comes with this package. */
3
4 #ifndef GRAS_STUB_GENERATOR_H
5 #define GRAS_STUB_GENERATOR_H
6
7 #include <stdio.h>
8 #include <lauxlib.h>
9 #include <lualib.h>
10 #include "msg/msg.h"
11 #include "simdag/simdag.h"
12 #include <gras.h>
13 #include "xbt.h"
14 #include "xbt/dynar.h"
15 #include "xbt/dict.h"
16 #include "xbt/sysdep.h"
17 #include "xbt/function_types.h"
18 #include "xbt/log.h"
19 #include "surf/surfxml_parse.h"
20 #include "surf/surf_private.h"
21 #include "surf/surf.h"
22 #include "portable.h"           /* Needed for the time of the SIMIX convertion */
23 #include <stdarg.h>
24
25
26 xbt_dict_t process_function_set;
27 xbt_dynar_t process_list;
28 xbt_dict_t machine_set;
29
30 typedef struct s_process_t {
31   int argc;
32   char **argv;
33   char *host;
34 } s_process_t;
35
36 char *warning;
37
38 void s_process_free(void *process);
39
40 /* UNIX files */
41 void generate_sim(const char *project);
42 void generate_rl(const char *project);
43 void generate_makefile_am(const char *project);
44 void generate_makefile_local(const char *project);
45
46 /* ********************************************************************************* */
47 /*                           Console functions                                       */
48 /* ********************************************************************************* */
49
50 typedef struct t_AS_attr {
51   const char *id;
52   const char *mode;
53   xbt_dynar_t host_list_d;
54   xbt_dynar_t link_list_d;
55   xbt_dynar_t route_list_d;
56 } AS_attr, *p_AS_attr;
57
58 typedef struct t_host_attr {
59   //platform attribute
60   // Mandatory attributes
61   const char *id;
62   double power_peak;
63   // Optional attributes
64   double power_scale;
65   const char *power_trace;
66   int state_initial;
67   const char *state_trace;
68   int core;
69   //deployment attribute
70   const char *function;
71   xbt_dynar_t args_list;
72 } host_attr, *p_host_attr;
73
74
75 typedef struct t_link_attr {
76   //mandatory attributes
77   const char *id;
78   double bandwidth;
79   double latency;
80   // Optional attributes
81   const char *bandwidth_trace;
82   const char *latency_trace;
83   const char *state_trace;
84   int state_initial;
85   int policy;
86 } link_attr, *p_link_attr;
87
88
89 typedef struct t_route_attr {
90   const char *src_id;
91   const char *dest_id;
92   xbt_dynar_t links_id;
93
94 } route_attr, *p_route_attr;
95
96 // Public Functions
97
98 int console_add_host(lua_State*);
99 int console_add_link(lua_State*);
100 int console_add_route(lua_State*);
101 int console_add_AS(lua_State*);
102 int console_set_function(lua_State*);
103
104 int console_parse_platform(void);
105 int console_parse_application(void);
106 int console_parse_platform_wsL07(void);
107
108 #endif