summaryrefslogtreecommitdiff
path: root/tools/build/v2/engine/modules.h
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/engine/modules.h')
-rw-r--r--tools/build/v2/engine/modules.h42
1 files changed, 29 insertions, 13 deletions
diff --git a/tools/build/v2/engine/modules.h b/tools/build/v2/engine/modules.h
index 60053a239f..a7d9752b8c 100644
--- a/tools/build/v2/engine/modules.h
+++ b/tools/build/v2/engine/modules.h
@@ -10,28 +10,44 @@
struct module_t
{
- char* name;
- struct hash* rules;
- struct hash* variables;
- struct hash* imported_modules;
- struct module_t* class_module;
- struct hash* native_rules;
+ OBJECT * name;
+ struct hash * rules;
+ struct hash * variables;
+ struct hash * variable_indices;
+ int num_fixed_variables;
+ LIST * * fixed_variables;
+ struct hash * imported_modules;
+ struct module_t * class_module;
+ struct hash * native_rules;
int user_module;
};
typedef struct module_t module_t ; /* MSVC debugger gets confused unless this is provided */
-module_t* bindmodule( char* name );
-module_t* root_module();
-void enter_module( module_t* );
-void exit_module( module_t* );
-void delete_module( module_t* );
+module_t * bindmodule( OBJECT * name );
+module_t * root_module();
+void delete_module( module_t * );
-void import_module(LIST* module_names, module_t* target_module);
+void import_module( LIST * module_names, module_t * target_module );
LIST* imported_modules(module_t* module);
-struct hash* demand_rules( module_t* );
+struct hash * demand_rules( module_t * );
+void module_bind_variables( struct module_t * m );
+
+/*
+ * After calling module_add_fixed_var, module_set_fixed_variables
+ * must be called before accessing any variables in the module.
+ */
+int module_add_fixed_var( struct module_t * m, OBJECT * name, int * n );
+void module_set_fixed_variables( struct module_t * m, int n );
+
+/*
+ * Returns the index of the variable or -1 if none exists.
+ */
+int module_get_fixed_var( struct module_t * m, OBJECT * name );
+
+void modules_done();
#endif