diff options
Diffstat (limited to 'tools/build/v2/engine/modules.h')
-rw-r--r-- | tools/build/v2/engine/modules.h | 42 |
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 |