/*\ ||| This file a part of Pike, and is copyright by Fredrik Hubinette ||| Pike is distributed as GPL (General Public License) ||| See the files COPYING and DISCLAIMER for more information. \*/ #include "global.h" #include "module.h" #include "pike_macros.h" #include "error.h" #include "builtin_functions.h" #include "main.h" #include "svalue.h" #include "interpret.h" #include "stralloc.h" #include "object.h" #include "mapping.h" #include "modules/modlist_headers.h" RCSID("$Id: module.c,v 1.9 1998/04/24 00:30:44 hubbe Exp $"); typedef void (*modfun)(void); struct static_module { char *name; modfun init; modfun exit; }; static struct static_module module_list[] = { { "Builtin", low_init_main, low_exit_main } #include "modules/modlist.h" ,{ "Builtin2", init_main, exit_main } }; void init_modules(void) { struct program *p; unsigned int e; start_new_program(); for(e=0;e<NELEM(module_list);e++) { start_new_program(); module_list[e].init(); end_class(module_list[e].name,0); } push_text("_static_modules"); push_object(low_clone(p=end_program())); f_add_constant(2); free_program(p); } void exit_modules(void) { int e; for(e=NELEM(module_list)-1;e>=0;e--) module_list[e].exit(); }